2014-11-05 5 views
0

Я пытаюсь добавить динамический ввод формы Elemnt на замену элемента select. У меня есть этот код:zend addElements form onchange select

$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 
     ))' 
    )); 

Я знаю, что это неверно, но я не нашел документацию об этом. Как добавить элемент onchange select value?

Заранее спасибо

ответ

0

Я хотел бы подойти к проблеме по-другому, если это возможно для вас: Javascript функции для вызова на OnChange. Это будет синтаксис правильно (и, как вы сказали, то, что вы написали, неверно, оно будет полностью распечатано на атрибуте onChange, а не интерпретируется через php).

так, я бы написать

'onChange' => 'addElement()' 

, а затем объявить яваскрипт функцию, которая обрабатывает новые элементы. Или вы можете подготовить элементы до (если у вас есть фиксированное число) и показать/скрыть их. Это может быть удобно, если у вас мало элементов, но если их слишком много, просто добавьте через javascript необходимый.

псевдокод 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)

вы не избежит от Javascript, если вы хотите обрабатывать «onChange»

+0

Да, я стараюсь, но моя идея также объявляет другие поля на платформе Zend и контролирует это путем замены выбора. Идеи с этим методом? –

+0

Насколько я знаю, вам понадобится javascript (например, jQuery) для обработки события onChange. (http://stackoverflow.com/questions/13126894/zend-form-onchange-select-load-another-view-content) Итак, я бы добавил все нужные элементы, установил их для рекламы отключенными/невидимыми и использовал javascript функция просто показать/включить те, которые вы хотите – Gounemond

+0

Хорошо спасибо большое @Gounemond. Potevamo parlare в italiano credo^__ ^ –