【问题标题】:yii2 htmlhelper dropdownlist valuesyii2 htmlhelper 下拉列表值
【发布时间】:2017-05-08 12:23:42
【问题描述】:

我有一个数组如下:

array[$key][$value]

我正在使用它在我的视图中形成一个 dropDownList。我没有使用 ActiveForm,因为数组不是来自模型。

echo Html::dropDownList("Listname","",$array,['prompt' => '--- select ---']) ;
echo Html::dropDownList("Listname","",ArrayHelper::map($array,'id','value'),['prompt' => '--- select ---']) ;

Var_dump

array(2) { [0]=> string(6) "value1" [1]=> string(6) "value2" [3]...}

输出的 html 看起来像这样

<select name="Listname" >
<option value>---select---</option
<option value="0">Value1</option>
<option value="1">Value2</option>
<option value="2">Value3</option>
<option value="3">Value4</option>
</select>

如何将值设置为 = 名称?比如

<option value="value1">Value1</option>
<option value="value2">Value2</option>
<option value="value3">Value3</option>
<option value="value4">Value4</option>

我意识到我可能不得不以某种方式使用 ArrayHelper,但我就是不太明白。那个,或者 htmlhelper 中的选项标签。

提前致谢!

【问题讨论】:

  • 试试ArrayHelper::map($array,'value','value')
  • 您好,我在数组的 var_dump 中进行了编辑。在这种情况下,地图仍然有效吗?我会尝试重新格式化我的数组并测试它谢谢

标签: php yii2 yii2-advanced-app


【解决方案1】:

你有:

echo Html::dropDownList("Listname","",ArrayHelper::map($array,'id','value'),['prompt' => '--- select ---']) ;

如果您希望每个输入的值与其内容相同,则应该是:

echo Html::dropDownList("Listname","",ArrayHelper::map($array,'value','value'),['prompt' => '--- select ---']) ;

欲了解更多信息,请查看官方 ArrayHelper::map 文档:http://www.yiiframework.com/doc-2.0/yii-helpers-basearrayhelper.html#map()-detail

您必须记住 Html::dropDownList 需要一个 key=>value 数组,您如何获取该数组并不重要。我的意思是,ArrayHelper 只是顾名思义,一个助手。如果您感觉更舒适,可以自己构建阵列。

【讨论】:

  • 谢谢!我相信我的阵列顺序不正确。我会用一个新数组来测试它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-05
相关资源
最近更新 更多