PHP中實現接收多個name相同但Value不相同表單資料執行個體,namevalue_PHP教程

來源:互聯網
上載者:User

PHP中實現接收多個name相同但Value不相同表單資料執行個體,namevalue


最近在一個詢盤留言管理系統時候一個問題,留言的前台的表單當中出現很多name值相同的input框,這些框是由使用者填寫的各不相同的值,現在要遷移到php平台上,而且要求不能改變前台的任何錶單(因為用到這個表單的網站實在是太多了,所以必須要考慮轉移的相容性,就連form的提交地址也不能變,必須是提交到某個asp頁面上)。form提交地址問題,可以用偽靜態或其它方法直接解決。由於以前的系統是由asp做的,asp在處理相同name值的表單的時候,是直接用逗號把前台提交的值連起來,而php卻不一樣,它接收相同的name的input的時候,是最後一個把前面的值給覆蓋掉了。那麼,怎麼樣在不改寫前台的基礎上,做到能接受到所有name相同的input的值呢?當時腦子裡浮現兩個想法,第一個是讓這個input的name以數組的方式傳到後台,然後作出處理,但是很快被否定掉了,因為這樣也必須要改動前台的代碼,讓
改成。第二個想法是php配置當中,有沒有類似的設定可以讓php像asp這樣處理相同name值的表單,查了半天資料,也沒有找到。

最後發現,只能退而求其次,稍微改動一下前台,把name換成數組,幸好這樣去用的網站並不多。那麼接下來就是幕後處理資料的問題了,前台的name有一部分改了,這時候就會出現一種情況,php不知道由form提交過來的是字串還是數組,那麼怎麼樣去做呢,我的辦法是寫一個函數:

function input_treat($input){ if(gettype($input)=="string"){ return htmlentities(trim($input),ENT_QUOTES); }else if(gettype($input)=="array"){ $nd=""; foreach($input as $v){  $nd .=htmlentities(trim($v),ENT_QUOTES)." "; } return $nd; }else{ return false; }}

用input_treat()函數去處理GET或者POST過來的值,如果是字串,那麼把字串處理一下返回,如果是數組,那麼遍曆這個輸入,用空格把數組的每個元素連起來,然後返回整個連起來的字串。

這樣,整個需求就實現了,缺點是對一部分使用相同name表單的網站必須要更改一下資料,如果你有更好的方法,歡迎和我留言溝通。

http://www.bkjia.com/PHPjc/953150.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/953150.htmlTechArticlePHP中實現接收多個name相同但Value不相同表單資料執行個體,namevalue 最近在一個詢盤留言管理系統時候一個問題,留言的前台的表單當中出現很多...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.