2

我有这样的dropdown选择Yii

<?php echo $form->dropdownList($students,'student_name', CHtml::listData(Students::model()->findAll(), 'student_name', 'student_name'), array('selected'=>'Choose One')); ?>

html output是这样的

<select selected="selected" name="Students[student_name]" id="Students_student_name">
<option value="Alex">Alex</option>
<option value="John">John</option>
<option value="Johny">Johny</option>
<option value="" selected="selected"></option>
</select> 

但我希望Select One应该是default selected value for the dropdown options. 所以默认情况下会Select One在没有选择任何选项时出现。

[更新]

Select One当我尝试时array('prompt'=>'Choose One'),它也是一种选择array('empty'=>'Choose One')

4

3 回答 3

5

我认为您对默认选定值使用了错误的键。

尝试:

// array('prompt'=>'Choose One')
echo $form->dropdownList($students,'student_name', CHtml::listData(Students::model()->findAll(), 'student_name', 'student_name'), array('prompt'=>'Choose One')); ?>
于 2012-08-24T06:43:38.437 回答
2

使用名为的属性empty

echo $form->dropdownList(
    $students,
    'student_name', 
     CHtml::listData(Students::model()->findAll(), 'student_name', 'student_name'),   
     array('empty'=>'Choose One') // boom!
);
于 2012-08-24T06:50:33.087 回答
1

当需要这样做时,我只需添加到 listData 生成的数组中。

<?php echo $form->dropdownList($students,'student_name', array(''=>'Select One') + CHtml::listData(Students::model()->findAll(), 'student_name', 'student_name')); ?>

一直对我很好。

于 2012-08-29T18:13:59.267 回答