Yii2下拉列表:如何在选项中添加类似"data-food = ..."的HTML标记?

4

我正在使用Yii2构建一个应用程序。我使用Yii2提供的Html Helper生成下拉列表:

<?= Html::dropDownList('food', $food_id, $foodList, ['id'=>'food-select']); ?>

其中$food_id是默认选中的选项,$foodList是包含键值对的数组,表示选项的值和文本。

它能正常工作,但我需要在我的选项中添加一个html标记(data-food="...")。类似于这样:

<select id='food-select'>
    <option id="1" data-food="apple-info">Apple</option>
</select>

这可以使用Html::dropDownList()方法实现吗?有没有任何方式可以做到呢?
1个回答

7
您可以使用以下方式中的 $options 数组的 options 参数:

$food_list = [1 => 'Apple', 2 => 'Banana', 4 => 'Orange']; //let's assume

<?= Html::dropDownList('food', $food_id, $food_list, [
    'id'=>'food-select',
    'options' => [
        1 => ['data-food'=>'apple-info'], //index must be same as the option value
        2 => ['data-food'=>'banana-info'],
        4 => ['data-food'=>'orange-info']
    ]
]); 
?>

输出以下下拉列表 -

<select id="food-select" name="food">
    <option value="1" data-food="apple-info">Apple</option>
    <option value="2" data-food="banana-info">Banana</option>
    <option value="4" data-food="orange-info">Orange</option>
</select>

从文档中可以得知 - http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#dropDownList()-detail 选项:数组,选择选项标签的属性。数组键必须是有效的选项值,数组值是相应选项标签的额外属性。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接