如何使用Chtml :: DropDownList()

use*_*196 7 php forms yii drop-down-menu

当谈到yii framework/php时,我现在是个新手.我想要一些帮助创建这个Chtml :: DropDownList.

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

Chtml::dropDownList($name, $select, $data)
Run Code Online (Sandbox Code Playgroud)

我知道$ 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>
Run Code Online (Sandbox Code Playgroud)

我希望能够显示他所加入的当前用户的所有teamName.

我目前正在用户的模型视图中显示它,但我需要的信息来自UserTeam,它为用户保存团队.

        'memberOfTeams' => array(self::MANY_MANY, 'UsersTeam', '{{teamMembers}}(userId, teamId)'),     
        'coachOfTeams' => array(self::HAS_MANY, 'UsersTeam', 'coachId'),
Run Code Online (Sandbox Code Playgroud)

cas*_*raf 16

$namename="mySelect"它将具有的表单值(如果作为表单发送将被传递的那个$_POST['mySelect']).

$select是预先选择的ID.假设你有一个阵列......

$options = array('12' => 'Twelve', '10' => 'Ten');
Run Code Online (Sandbox Code Playgroud)

你的下拉列表看起来像这样......

echo CHtml::dropDownList('mySelect', '12', $options);
Run Code Online (Sandbox Code Playgroud)

然后'Twelve'将成为下拉列表中的预选项,$_POST['mySelect']并将是表单发送时传递的值.

您可以<option>使用第四个参数CHtml::dropDownList接受为每个标记添加其他html选项,如下所示:

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

并将通话更新为:

echo CHtml::dropDownList('mySelect', '12', $options, $htmlOptions);
Run Code Online (Sandbox Code Playgroud)

完成的列表如下所示:

<select name="mySelect" style="cursor: pointer;">
    <option value="12" selected="selected" title="12">Twelve</option>
    <option value="10">Ten</option>
</select>
Run Code Online (Sandbox Code Playgroud)