2013-06-25 40 views
4

我目前是yii框架/ php的新手。我想創建這個Chtml :: DropDownList一些幫助。如何使用Chtml :: DropDownList()

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

Chtml::dropDownList($name, $select, $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'), 

回答

15

$namename="mySelect"形式值它將有(如果發送的一種形式即$_POST['mySelect']將被傳遞的一個)。

$select是預先選擇的ID。假設你有一個數組...

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

而且你的下拉列表看起來像這樣...

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

那麼「十二」將成爲預選項目的下拉列表,並$_POST['mySelect']將價值傳遞表單發送時。

您可以添加額外的HTML選項,每個<option>標籤,使用第四個參數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> 
+0

需要與select.'的選項標籤標題屬性<期權價值=「10」標題=「十大項目」>十' 任何幫助@casraf? – xyz

+0

@xyz http://www.yiiframework.com/doc/api/1.1/CHtml#dropDownList-detail文檔涵蓋了它,但我添加了一個示例 – casraf

1

您可以輕鬆地做與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> 

希望這有助於你

相關問題