2014-02-20 3 views
0

Я использую Zend Framework 1.12, манипулируя формой с некоторыми опциями выбора. Проблема в том, что меня попросили удалить параметр по умолчанию, который отображается в начале в форме, чтобы меню выбора было пустым в начале, но чтобы оно могло быть заполнено только тремя значениями. Мой код ниже:удаление опции по умолчанию из формы zend

$tipo = new Zend_Form_Element_Select ('tipo', array (
      'onchange' => 'checkServer(this.value);' 
        )); 
    $tipo->setLabel ('Kerio Product')->setRequired()->addMultiOptions (array (
      '1' => 'Connect', 
      '2' => 'Control', 
      '3' => 'Operator' 
    )); 

$this->addElement($tipo) 

$ this_setValue (""); не работает

ответ

1

Попробуйте этот код (вам необходимо расширить Zend_Form в своем классе).

$this->addElement('select', 'KerioProduct', array(

     'multiOptions' => array('' => "") + Zend_Registry::get('config')->lists->yourProducts->toArray()/* if you store your options in a file: 'connect, control... in your case: OR create an array 1=>connect , 2=>control... */, 

     'required' => true, 
     'validators' => array (
          'NotEmpty' => array (
           'validator' => 'NotEmpty', 
           'options' => array (
            'messages' => $tr->_('select a product ') 
           ) 
          ) 
         ) 
    )); 

надеюсь, что это поможет.

+0

что же стоит $ TR для? – softwareplay

+1

используется для перевода позже, вы удаляете его из кодовых сообщений => «...» – mboullouz

1

Вы можете установить нулевой или "" в качестве первого варианта в так:

-> addMultiOptions (массив ('0' => '', '1' => 'Connect' ....

+0

Это подтвердило бы, хотя .... – softwareplay

+0

он должен подтвердить или нет? это зависит от того, требуется ли это подача. – konradwww

+0

no, котор оно не должно проверять, это поле обязательно, но оно shoudl будет emty когда форма показывает вверх поначалу. Я ищу валидатор, но как-то messy – softwareplay

1

Если вы хотите, чтобы выбрать меню, чтобы быть пустым, вам нужно установить Регистр массив валидатор из Зенда форм к ложному, и Select Element будет пустым и может пойти с из ошибки проверки

вас. может это сделать следующим образом:

$tipo = new Zend_Form_Element_Select ('tipo', array (
       'onchange' => 'checkServer(this.value);' 
       ) 
       ); 
$tipo->setLabel ('Kerio Product') 
    ->setRequired() // You don't need this in this case 
    ->setRegisterInArrayValidator(false); 

Это означает, что ваш элемент выбора пуст, не получая ошибку проверки массива. Как вы хотите добавить опцию выбора, зависит от вас, вы можете сделать это на контроллере или в поле зрения.

->addMultiOptions (array (
      '1' => 'Connect', 
      '2' => 'Control', 
      '3' => 'Operator' 
    )) 

Я надеюсь, что добавляет некоторые на ваш вопрос

Смежные вопросы