zoukankan      html  css  js  c++  java
  • checkbox,不选中传值

    方法一

    <form action="test2.asp" method="post"> <input type="checkbox" name="chk1" value="1" /> <input type="checkbox" name="chk2" value="1" onclick="javascript:document.getElementById('hid').value=this.checked;" /> <input type="hidden" id="hid" name="hid1" value="false"/> <input type="submit" value="提交" /> </form>

     方法二

    根据W3C的规则未选中的checkbox和禁用的控件不是有效控件,不会被POST。因此如果要未选中的checkbox表示值0的话,就不得不曲线完成了。
    最近研究Zend Framework时候,发现其中的一个方法formCheckbox()。这个方法是生成checkbox表单的。但是它在生成checkbox的之前会生成一个hidden表单。这种做法很巧妙。
    比如:
    <input type="hidden" name="foo" value="0">
    <input type="checkbox" name="foo" id="foo" value="1">
    生成这样的表单,当checkbox未选中的时候,提交的是hidden表单。值0就被提交到服务器了。
    当checkbox都选中的时候,hidden和checkbox表单都被提交了,但是因为它们的name是一样的,所以hidden的值被checkbox覆盖了。所以就得到了数值1。
    这种方法简单巧妙,值得推广。
    
    经测试,在PHP中,如果有多个name相同的表单,post到服务器,后台仅取最后一个表单的值。而在ASP.NET中,会把这个多个表单的值合并成逗号分割的值。因此,这种方法用在PHP下更合适。
  • 相关阅读:
    Inside Dynamics Axapta源代码赏析(五)
    Inside Dynamics Axapta源代码赏析(二)
    PHP查询显示关键字为红色
    textarea自适应高度
    背景图只显示一次,不循环,另外还有一个是PHP下的换行显示
    PHP格式化时间,形如(Wed 30,Jul 2008)
    实现页面加载中。。
    c++关于设置精度
    HDOJ 2662
    live Messenger
  • 原文地址:https://www.cnblogs.com/hsd1727728211/p/6516129.html
Copyright © 2011-2022 走看看