ホームページ  >  に質問  >  本文

カスタムドロップダウンメニューの項目が Yii 2 で正しく動作しない

<p>Yii 2 で独自のドロップダウン リスト関数を作成しています。関数とビューを作成しました。ビューにはドロップダウン フォームに複数の項目があります。 </p> <pre class="brush:php;toolbar:false;"><?= $form->customDropDown($dpForm, 'color', [ 'アイテム' => [ 'ラベル' => '赤'、 '値' => '赤'、 'オプション' => [ 'スタイル' => '色: 赤' ] ] [ 'ラベル' => '青'、 '値' => '青'、 'オプション' => [ 'スタイル' => '色: 青' ] ] ] </pre> <p>私が作成した関数は次のとおりです (ActiveForm を使用し、ActiveForm に配置されています): </p> <pre class="brush:php;toolbar:false;"> public function customDropdown($model, $attribute, $items = [], $options = []) { $value = Html::getAttributeValue($model, $attribute); $field = $this->field($model, $attribute, $options); return $this->staticOnly ? $field : $field->dropDownList($items); } </pre> <p>問題は、ドロップダウンを開くと、ラベルやスタイルを含むオプションだけでなく、すべてがオプションまたはオプションのグループになることです。 </p> <p><em>Inspector</em> の表示効果は次のとおりです。</p> <pre class="brush:html;toolbar:false;"><optgroup label='0'> <option value="label">red</option> <オプション値="値">赤</オプション> </optgroup> <optgroup label="オプション"> <option value="style">色: 赤</option> </optgroup> </pre> <p>など。私が望む効果は次のとおりです:</p> <pre class="brush:html;toolbar:false;"><option value="red" style="color: red">red</option> </pre> <p>しかし、この効果は達成できないようです。 </p>
P粉268284930P粉268284930382日前502

全員に返信(1)返信します

  • P粉801904089

    P粉8019040892023-09-06 14:29:43

    ドロップダウン内の各項目が、指定されたラベル、値、スタイルを持つ単一の <option> タグで表される、目的の出力を実現するには、コードを次のように変更する必要があります。 ビュー ファイルで、customDropDown 関数呼び出しを更新して、項目配列を正しく渡します。 リーリー 更新されたメソッド: リーリー この更新されたバージョンでは、$options 配列を dropDownList メソッドに直接渡し、array_column を使用して $items 配列からラベルと値のペアを抽出します。

    返事
    0
  • キャンセル返事