Nette getHttpData包含未选中的复选框

时间:2018-09-11 12:15:23

标签: forms checkbox nette

当我拥有一个具有动态数量的复选框(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的转储。

2 个答案:

答案 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[]")保留这些密钥。