ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – 如何在Zend Framework 2表单的第一个上将disabled属性设置为disabled

2019-09-01 17:31:11  阅读:227  来源: 互联网

标签:php zend-framework2 zend-form


我正在使用Zend Framework 2开发一个应用程序,我正在使用两个选择多个框.第一个是来自数据库的数据,第二个是空的.

我打算在两个选择的第一个选项中将disabled属性设置为“disabled”.
这样,第一个选项将无法使用且无法点击.因此,当使用添加/删除按钮时,用户将无法将这些第一选项从一个选项传递到另一个选项.

选择1

   <select id="AttributesId" multiple="multiple" size="7" title="Select an Attribute" name="idAttributes[]">
   <option value="0">Please Select an Attribute</option>
    <option value="1"> Attribute 1</option>
    <option value="2"> Attribute 2</option>
   </select>

选择2

<select id="SelectedAttributesId" multiple="multiple" size="7" title="Selected Attributes" name="selectedAttributes[]">
<option value="0">Current Selection</option>
</select>

在ZF2上生成两个选择的php代码是:

(……)

public function __construct ($em = null)
    {
        parent::__construct("typeset");
        $this->setAttribute("method", "post")
            ->setAttribute("class", "contact-form");

        if(null !== $em)
        {
            $this->setEntityManager($em);
        }

        $em = $this->getEntityManager();
        $query = $em->createQuery("SELECT a.idAttribute, a.internalName FROM ProductCatalog\Entity\Attribute\Attribute a ORDER BY a.internalName ASC");
        $attributes = $query->getResult();

        $select = new Element\Select('idAttributes');
        $select->setAttribute('title', 'Select an Attribute')
                ->setAttribute('size', 7)
                ->setAttribute('multiple', 'multiple')
                ->setAttribute('id', 'AttributesId');

        $selected = new Element\Select('selectedAttributes');
        $selected->setAttribute('title', 'Selected Attributes')
               ->setAttribute('size', 7)
               ->setAttribute('multiple', 'multiple')
               ->setAttribute('id', 'SelectedAttributesId');

        $labelIdAttributes = 'Attributes List: ';
        $labelSelectedAttributes = 'Selected Attributes List: ';

        $options[0] = 'Please Select an Attribute';

//这条跟随线不起作用,但你可以了解我需要它
// $options [0] – > setAttribute(‘deselect’,’deselect’);

        foreach ($attributes as $key => $value)
        {
            $options[$value['idAttribute']] = $value['internalName'];
        }

        $selectedOptions[0] = 'Current Selection';



        $select->setLabel($labelIdAttributes)
               ->setValueOptions($options);


        $selected->setLabel($labelSelectedAttributes)
                ->setValueOptions($selectedOptions);


        $this->add($select);
        $this->add($selected);

(...)

解决方法:

如果我没记错的话,你需要稍微不同地格式化选项数组:

$options = array(
    array('value' => '0', 'label' => ' Please Select an Attribute', 'disabled' => 'disabled'),
    array('value' => '1', 'label' => ' Attribute 1'),
    array('value' => '2', 'label' => ' Attribute 2')
);

禁用是有效属性之一.

标签:php,zend-framework2,zend-form
来源: https://codeday.me/bug/20190901/1785008.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有