我有一个有 2 个选择的表格。根据第一个选择的值,它使用 AJAX 更新第二个选择的值。这样做会使表格无效。所以,我做了下一个改变:
$form=$this->getAddTaskForm(); //the form
if(!$form->isValid($_POST)) {
$values=$form->getValues();
//get the options and put them in $options
$assignMilestone=$form->getElement('assignedMilestone');
$assignMilestone->addMultiOptions($options);
}
if($form->isValid($_POST)) {
//save in the database
}else {
//redisplay the form
}
基本上,我检查它是否有效,以及用户是否更改了第一个选择的值。我得到填充第二个选择的选项并用它们填充表单。然后我再次尝试验证它。然而这不起作用。任何人都可以解释为什么吗?存在相同的“在干草堆中找不到值”。
您可以尝试停用验证器:
在你的 Form.php 中
$field = $this->createElement('select', 'fieldname');
$field->setLabel('Second SELECT');
$field->setRegisterInArrayValidator(false);
$this->addElement($field);
第三行将停用验证器,它应该可以工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)