我正在尝试使用Zend_Form添加一个禁用的复选框,然后使用JS启用它。
这是问题,zend添加了一个具有相同名称和值0的隐藏输入字段。这是为了确保即使未选中复选框,也将发送值0而不是任何值。这很棒。但是,如果您将复选框创建为已禁用,则zend不会输出此隐藏字段。它输出的所有内容都是复选框,禁用,被检查与否(无关紧要,因为它被禁用它根本不会提交任何内容)。
我需要允许客户端启用复选框并更改值。
如果禁用,则不提交任何内容,db复选框值保持不变。如果启用,客户端应该能够检查/取消选中它。问题是现在没有隐藏字段,如果取消选中该复选框,则不会提交任何内容。
有什么想法吗?
答案 0 :(得分:0)
首先:我不喜欢Zend为你处理这个问题的方式。正如您自己发现的那样,添加值为0的隐藏字段与禁用的复选框不同。
解决您的问题:只需添加隐藏字段,并在其中添加原始状态。
例如:
<INPUT type="hidden" name="originalStateOfMyCheckbox" value="enabled/disable">
现在,您可以先查看$ _POST [&#34; originalStateOfMyCheckbox&#34;]的值来检查复选框的值。
如果启用:您可以使用isset($ _ POST [&#34; yourcheckboxname&#34;])来确定它是否已被选中。
如果禁用:您可以再次使用isset($ _ POST [&#34; yourcheckboxname&#34;])来确定您的javascript是否启用了它。