web-dev-qa-db-ja.com

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から来た国だけです。

何か案が?

9
groovekiller

ドロップダウンリストを印刷するときに、モデルの_country_id_プロパティが何にも設定されていないことを確認しますか? _$model_インスタンスがnew Country()演算子を使用して作成されているが、データベースからプロパティを入力することによって作成されていない場合、次のように機能します。

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

読む ドキュメント 。 'Prompt'パラメータがあります。

これを試して:

<?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/

12
Bogdan Burim

itemsメソッドでarray_mergeのようなことをいつでも行うことができます

public static function items()
{
return array_merge(array(''=>'--Select a country--'), CHtml::listData(Country::model()->findAllBySql(
                            'SELECT * from country'), 
                            'id', 'name'));
}
1
Soyale

私はあなたが探していると信じています:

echo $form->dropDownList($model,'country_id',Country::items(),array('Prompt'=>''));
1
D.Mill

あなたが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',
                ),
            )
        ); ?>

私の場合はうまくいきました

0
Sonef