Zend表单 - 填充动态选择

时间:2011-09-11 09:54:43

标签: zend-framework zend-form

我有一个带有两个级联选择框的zend表单(当你在第一个选择一个选项时,第二个选择用jquery ajax调用填充)。

此表单是向导的一部分,因此当用户返回时,我想用正确的值填充它。我正在使用populate()方法,但显然它不适用于动态选择,因为它在开头没有任何值。

我该如何处理?

如果已经选择了第一个选择,我是否应该覆盖表单的填充函数来加载动态选择值?

例如,我有一个有两个选择的表单:

    $jobCategoriesSelect = new Zend_Form_Element_Select('jobCategories');
    $jobCategoriesSelect->setAttrib('id', 'jobCategories');
    $jobCategoriesSelect->setAttrib('size', 5);
    $jobCategoriesSelect->setMultiOptions($jobCategoriesDb->fetchAllPairs());
    $jobCategoriesSelect->setRequired(true);
    $jobCategoriesSelect->setAttrib('onchange', 'updateSubCategories();');  
    $careerInterestForm->addElement($jobCategoriesSelect);

    $jobSubCategoriesSelect = new Zend_Form_Element_Select('jobSubCategories');
    $jobSubCategoriesSelect->setAttrib('id', 'jobSubCategories');
    $jobSubCategoriesSelect->setAttrib('size', 5);
    $jobSubCategoriesSelect->setRequired(true);
    $jobSubCategoriesSelect->setRegisterInArrayValidator(false); // validation 

不应该在select中查找值,因为它是动态的

    $careerInterestForm->addElement($jobSubCategoriesSelect);

第二个选择为空(不是multiOptions),并在第一个选择更改时填充jquery。现在我想用

将预先选择的值加载到此表单中
$form->populate();

这适用于第一个选择,但它不适用于第二个选择,因为它在开头是空的。我想如果第一个选择已经有值,我可以覆盖populate方法并预加载第二个选择值。或者还有其他方式吗?

0 个答案:

没有答案
相关问题