post未選中的checkbox控件

原文地址:http://cnn237111.blog.51cto.com/2359144/1293812
根據W3C的規則未選中的checkbox和禁用的控件不是有效控件,不會被POST。因此如果要未選中的checkbox表示值0的話,就不得不曲線完成了。
最近研究Zend Framework時候,發現其中的一個方法formCheckbox()。這個方法是生成checkbox表單的。但是它在生成checkbox的之前會生成一個hidden表單。這種做法很巧妙。
比如:


生成這樣的表單,當checkbox未選中的時候,提交的是hidden表單。值0就被提交到服務器了。
當checkbox都選中的時候,hidden和checkbox表單都被提交了,但是因爲它們的name是一樣的,所以hidden的值被checkbox覆蓋了。所以就得到了數值1。
這種方法簡單巧妙,值得推廣。

經測試,在PHP中,如果有多個name相同的表單,post到服務器,後臺僅取最後一個表單的值。而在ASP.NET中,會把這個多個表單的值合併成逗號分割的值。因此,這種方法用在PHP下更合適。

發佈了54 篇原創文章 · 獲贊 8 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章