0

私のプロジェクトでは、次のように配列表記の名前を持つ多くのドロップダウン フィールドが必要です。

<select name="language[]">...</select>
<select name="language[]">...</select>
<select name="language[]">...</select>

Zend のformSelectビュー ヘルパーをレンダリングする必要があるため、次のように簡単に実行できると考えました。

for($i = 0; $i < 3; $++){
    echo $this->formSelect('language[]', $this->languages[$i],
                                         $this->attribs[$i],
                                         $this->languageOptions[$i]);
}

しかし、私は間違っていました。通常のドロップダウン フィールドとしてレンダリングする代わりに、Zend は賢くパンツになって複数選択フィールドとしてレンダリングすることにしました。

この動作の背後にある考え方は理解できますが、たまたま、formSelect提供されるヘルプが私のニーズに対して多すぎます。

これで、JavaScript を使用してmultiple="multiple"属性を削除し、通常のドロップダウンに変換することで修正できます...

しかし、好奇心から、formSelectこれらの要素を通常のドロップダウン フィールドとしてレンダリングする方法はありますか?

4

1 に答える 1

1

あなたは正しいです、formSelectヘルパーは、要素名がarray[].

ただし、動作をオーバーライドできます。

これを行うには、要素のmultiple => falseリストに追加します。$attribs

例えば

$attribs = array('multiple' => false, 'class' => 'selection');
echo $this->formSelect('not_array[]', '', $attribs, $options);

これにより、要素が複数の選択をサポートしようとするのを防ぐ必要があります。

于 2012-04-29T16:37:03.197 に答える