从zend表单中删除默认选项

时间:2014-02-20 15:02:29

标签: php zend-framework

我正在使用Zend Framework 1.12,使用一些选择选项来操作表单。问题是我被要求删除默认选项,该选项在表单的开头显示,以便选择菜单在开头是空的,但是只能填充三个值。我的代码如下:

 $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( “”);不起作用

3 个答案:

答案 0 :(得分: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 ')
                                )
                            )
                        )
    ));
希望它有所帮助。

答案 1 :(得分:1)

您可以将null或“”设置为第一个选项,如下所示:

  

- > addMultiOptions(array('0'=>'','1'=>'Connect'....

答案 2 :(得分:1)

如果您希望Select菜单为空,则需要将zend forms的Register array validator设置为false;选择元素将为空,并且可以没有验证错误。

你可以通过以下方式做到这一点。

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

将select元素设置为空,但不会出现数组验证错误。如何添加选择选项,取决于您可以在控制器上或视图中执行此操作。

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

我希望在您的问题中添加一些