Yii下拉列表空值为默认值

时间:2013-04-17 10:27:41

标签: php drop-down-menu yii

我的_form模型中有一个下拉列表,我想添加一个空值(我想要默认值)。我有以下内容: 在_form:

<?php echo $form->labelEx($model,'country_id'); ?>
<?php echo $form->dropDownList($model,'country_id',Country::items(),array('empty' => '--Select a country--')); ?>
<?php echo $form->error($model,'country_id'); ?>

在模范国家:

public static function items()
{
    return CHtml::listData(Country::model()->findAllBySql(
                        'SELECT * from country'), 
                        'id', 'name');
}

即使我的空选项位于下拉列表的第一行,列表中的第一个国家/地区也显示为默认值。

我试过了:

<?php echo $form->dropDownList($model,'country_id',
    Country::items(),array('empty'=>'--Select a country--',
                           'options'=>
                             array(
                               '3'=>array('selected'=>'selected')
                                 )
     )); 
?>

通过这种方式我可以选择默认选项,但不能将其设置为空值,只是来自model:items的国家。

有什么想法吗?

5 个答案:

答案 0 :(得分:21)

打印下拉列表时,您确定模型的country_id属性未设置为任何内容吗?如果$model实例是使用new Country()运算符创建的,而不是通过从数据库填充属性,则以下内容适用于我:

<?php echo $form->dropDownList(
    $model,
    'country_id',
    Country::items(),
    array(
        'empty'=>'--Select a country--')
    );
?>

答案 1 :(得分:12)

阅读documentation。有'提示'参数。

试试这个:

<?php
    echo $form->dropDownList($model,'country_id',Country::items(), array(
        'prompt' => '--Select a country--'
    ));
?>

在此处查看更多详情http://www.yiiframework.com/forum/index.php/topic/11195-how-to-edit-the-default-option-in-dropdownlist/

答案 2 :(得分:1)

您总是可以在items方法

中执行类似array_merge的操作
public static function items()
{
return array_merge(array(''=>'--Select a country--'), CHtml::listData(Country::model()->findAllBySql(
                            'SELECT * from country'), 
                            'id', 'name'));
}

答案 3 :(得分:1)

我相信你在寻找:

echo $form->dropDownList($model,'country_id',Country::items(),array('prompt'=>''));

答案 4 :(得分:0)

如果您使用yiibooster,这可能会有所帮助

<?php echo $form->dropDownListGroup(
            $model,
            'kode_cuti_sub2',
            array(
                'empty'=>'--Select a country--',
                'widgetOptions' => array(
                    'data' => array('Something ...', 'Pilih Jenis Cuti'=>Chtml::listData(Cuti::model()->cuti_sub2(),'kode','jenis_cuti')),
                    'options' => array(
                        'placeholder' => 'Pilih NIP Pegawai',
                        'width' => '100%',
                    ),
                ),
                'wrapperHtmlOptions' => array(
                    'class' => 'col-sm-5',
                ),
            )
        ); ?>

就我而言,它的工作