【问题标题】:Adding extra elements to options array in Zend_Form_Element_Select在 Zend_Form_Element_Select 中向选项数组添加额外元素
【发布时间】:2013-02-25 11:00:13
【问题描述】:

基本上,我需要在使用 Zend 创建的选择框中包含一些额外的数据。当前标记如下:

<select>
    <option label="Canadian Dollar ($)" value="1">Canadian Dollar ($)</option>
    <option label="Euro (€)" value="2">Euro (€)</option>
    <option label="US Dollar ($)" value="3">US Dollar ($)</option>
</select>

我想要实现的标记如下(注意额外的“数据货币类型”属性):

<select>
    <option label="Canadian Dollar ($)" value="1" data-currency-code="CAD">Canadian Dollar ($)</option>
    <option label="Euro (€)" value="2" data-currency-code="EUR">Euro (€)</option>
    <option label="US Dollar ($)" value="3" data-currency-code="USD">US Dollar ($)</option>
</select>

正在使用 Zend 创建表单,如下所示:

$element = new Zend_Form_Element_Select(self::NAME);

/* -- OMMITED DB CODE --*/

$element->setOptions($options);

$options 是一个数组,形式为:array('1' => 'Value1', '2'=> 'Value2').. 等

我的问题是,有没有办法使用 Zend ->setOptions($opts) 将额外的元素添加到“选项”元素中?或者我可能不知道的任何事情。

请帮忙!

【问题讨论】:

    标签: php zend-framework zend-form options


    【解决方案1】:

    渲染元素的FormSelect 视图助手不支持&lt;option&gt; 标签上的附加属性,因此实现这一点的唯一方法是用您自己的实现覆盖该助手。助手类是Zend_View_Helper_FormSelect,所以如果你看一下它的代码,你应该能够看到它是如何工作的。

    【讨论】:

    • 非常感谢!我会调查的。
    【解决方案2】:

    请使用 setArribute 方法添加附加属性。您可以添加 data-currency-code 作为属性。

    【讨论】:

    • 不会工作..因为属性被添加到“选择”标签中。我需要将它添加到“选项”标签中。不过还是谢谢。还有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多