当我拥有一个具有动态数量的复选框(name='golyPenalta[]'
)的表单,并且在提交时使用$form->getHttpData($form::DATA_TEXT, "golyPenalta[]");
可以以某种方式包含未选中的复选框吗?只有经过检查的对象才会在字段中放置并有自己的顺序,所以我不知道哪个惩罚属于哪个目标:
golyCas => array (3)
0 => "55" (2)
1 => "60" (2)
2 => "70" (2)
golyPenalta => array (2)
0 => "on" (2)
1 => "on" (2) // <- this should be part of third goal so index should be 2
我已经尝试用$form->getHttpData($form::DATA_TEXT | $form::DATA_KEYS, "golyPenalta[]");
来做到这一点,但是没有运气。上面的转储来自属性httpData中的$form
的转储。
答案 0 :(得分:0)
不幸的是,没有,未经检查的复选框甚至没有在http的POST数据中发送。您必须在nette中定义元素,然后使用$form->getValues()
将其包括在内。如果仅在客户端添加它们,则服务器将没有机会知道它们的存在。
答案 1 :(得分:0)
最终,当我为该字段创建动态编号时,使用输入名称name='golyPenalta[key]'
中的特定键来完成此操作。可以通过Nette形式name='golyPenalta[{key}]'
来完成此操作,也可以通过JavaScript在for循环中创建name='golyPenalta[$i]'
来创建它的字段数。
在表单提交中,我使用$form->getHttpData($form::DATA_TEXT | $form::DATA_KEYS, "golyPenalta[]")
保留这些密钥。