web-dev-qa-db-ja.com

Chtml :: DropDownList()の使用方法

yiiフレームワーク/ phpに関しては、現在初心者です。このChtml :: DropDownListの作成についてサポートが必要です。

http://www.yiiframework.com/doc/api/1.1/CHtml#dropDownList-detail

Chtml::dropDownList($name, $select, $data)

$ dataは、データベースからロードするデータの配列であることを理解しています。

しかし、誰かが$ nameと$ selectが実際にどのように機能するかを私に説明できますか。私はこれを非常にばかげたレベルで説明するドキュメントを見つけるのに苦労しています。

私はなんとかこのコードを機能させることができましたが、Chtml :: dropdownlistを使用したいと思います。

<div class="row">
    <?php
        echo $form->dropDownList($model, 'id',
        Chtml::listData(UsersTeam::model()->findAllByAttributes(array('coachId'=>$model->id)), 'id', 'teamName'),
        array('empty'=>'Select Team'))
    ?>
</div>

現在のユーザーが参加しているすべてのteamNameを表示できるようにしたいと思います。

現在、これをユーザーのモデルビューに表示していますが、必要な情報は、ユーザーのチームを保持するUserTeamからのものです。

        'memberOfTeams' => array(self::MANY_MANY, 'UsersTeam', '{{teamMembers}}(userId, teamId)'),     
        'coachOfTeams' => array(self::HAS_MANY, 'UsersTeam', 'coachId'),
7
user2205196

$nameは、それが持つname="mySelect"フォーム値です(フォームとして送信された場合に渡される値、つまり$_POST['mySelect'])。

$selectは事前に選択されたIDです。配列があるとしましょう...

$options = array('12' => 'Twelve', '10' => 'Ten');

そして、あなたのドロップダウンはこのように見えます...

echo CHtml::dropDownList('mySelect', '12', $options);

次に、「Twelve」がドロップダウンで事前に選択された項目になり、$_POST['mySelect']がフォームの送信時に渡される値になります。

次のように、<option>が受け入れる4番目のパラメータを使用して、各CHtml::dropDownListタグに追加のhtmlオプションを追加できます。

$htmlOptions = array(
    // adds to the select element
    'style' => 'cursor: pointer;',
    // adds to the actual options
    'options' => array(
        '12' => array('title' => '12')
    )
);

そして、呼び出しを更新します:

echo CHtml::dropDownList('mySelect', '12', $options, $htmlOptions);

完成したリストは次のようになります。

<select name="mySelect" style="cursor: pointer;">
    <option value="12" selected="selected" title="12">Twelve</option>
    <option value="10">Ten</option>
</select>
16
casraf

CHtml :: activeDropDownListでも同じことが簡単にできます。

したがって、コードは次のようになります

<div class="row">
    <?php
        echo CHtml::activeDropDownList($model, 'id',
        Chtml::listData(UsersTeam::model()->findAllByAttributes(array('coachId'=>$model->id)), 'id', 'teamName'),
        array('empty'=>'Select Team'))
    ?>
</div>

これがお役に立てば幸いです

2
dev1234