7

我目前是 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'),
4

2 回答 2

16

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

$select是预选的 ID。假设你有一个数组......

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

你的下拉菜单看起来像这样......

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

然后“十二”将是下拉列表中的预选项目,并且$_POST['mySelect']将是发送表单时传递的值。

<option>您可以使用第四个参数accept为每个标签添加额外的 html 选项CHtml::dropDownList,如下所示:

$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>
于 2013-06-25T16:01:54.060 回答
2

你可以很容易地用 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>

希望这可以帮助你

于 2013-06-25T16:14:42.100 回答