zend addElements表单onchange select

时间:2014-11-05 10:20:11

标签: forms zend-framework select dynamic onchange

我尝试在select元素的onchange上添加一个表单输入Elemnt。 我有这段代码:

$this->addElement('select', 'nationality', array(
        'multiOptions' => array('CH' => 'Choose','IT' => 'Italy', 'other' => 'Other'),
        'required' => true,
        'label' => 'Nation',
        'filters'    => array('StringTrim'),
        'onChange' => '???'
    ));

我尝试粘贴我的新元素而不是“???”

$this->addElement('select', 'nationality', array(
        'multiOptions' => array('CH' => 'Choose','IT' => 'Italy', 'other' => 'Other'),
        'required' => true,
        'label' => 'Nation',
        'filters'    => array('StringTrim'),
        'onChange' => '$this->addElement(
                         'text', 'codice_fiscale', array(
                         'required' => true,
                         'label' => 'Codice fiscale',
                         'required' => true
        ))'
    ));

我知道不正确,但我没有找到任何关于它的文档。 如何在更改选择值上添加元素?

提前致谢

1 个答案:

答案 0 :(得分:0)

如果您有可能,我会以不同的方式解决问题: javascript函数调用onChange。这将是语法正确(并且,正如你所说,你所写的不正确,它将完全打印出onChange属性,而不是通过php解释)。

所以,我会写

'onChange' => 'addElement()'

然后声明处理新元素的javascript函数。或者,您可以在之前准备元素(如果您有固定的数字),并显示/隐藏它们。如果你没有太多元素可能会很方便,但如果它们太多,只需通过javascript添加所需元素。

PseudoCode Javascript

function addElement()
{
    // add your element here, or show / hide it
}

据我的经验和类似案例所见

Zend_form_element_select onchange in zend framework

Zend Form: onchange select load another view content

如果您想要处理" onChange"

,您将无法逃脱Javascript