2017-05-08 1 views
0

J'ai un tableau comme ci-dessous:yii2 HtmlHelper dropdownlist valeurs

array[$key][$value] 

et je l'utilise pour former un DROPDOWNLIST à mon avis. Je n'utilise pas ActiveForm car le tableau ne provient pas d'un modèle.

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]...} 

Le html de sortie ressemble à ceci

<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> 

Comment puis-je définir les valeurs à = au nom? tels que

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

je me rends compte que je dois probablement utiliser ArrayHelper en quelque sorte, mais je ne peux pas tout à fait le faire. Cela, ou les balises d'option dans le htmlhelper.

Merci d'avance!

+0

try 'ArrayHelper :: map ($ tableau, 'valeur', 'valeur')' – ArtOsi

+0

Salut j'ai édité dans mon var_dump du tableau. va cartographier encore travailler dans ce cas? je vais essayer de reformater mon tableau et le tester merci – HelloGaro

Répondre

0

Vous avez:

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

Si vous voulez la même valeur pour chaque entrée que son contenu, il devrait être:

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

Pour plus d'informations, jetez un oeil à la ArrayHelper officielle: : documentation de la carte: http://www.yiiframework.com/doc-2.0/yii-helpers-basearrayhelper.html#map()-detail

Vous devez garder à l'esprit que Html :: dropDownList attend un tableau clé => valeur, comment vous obtenez ce tableau n'a pas d'importance. Je veux dire, ArrayHelper est juste, comme son nom l'indique, un assistant. Vous pouvez construire votre tableau par vos propres moyens si vous vous sentez plus à l'aise.

+0

Merci! Je crois que mon tableau n'est pas dans le bon ordre. Je vais tester avec un nouveau tableau – HelloGaro