1. 程式人生 > >yii2框架dropDownList的下拉選單用法介紹

yii2框架dropDownList的下拉選單用法介紹

Yii2.0 預設的 dropdownlist 的使用方法.

 程式碼如下 複製程式碼

<?php echo $form->field($model, 'name[]')->dropDownList(['a' => 'Item A', 'b' => 'Item B', 'c' => 'Item C']); ?>

在yii2中加放請選擇的下拉選單

 程式碼如下 複製程式碼
 
<php echo $form->field($model, 'name[]')->dropDownList($listData, 
                        ['prompt'=>'Select...']);>

 
DropDownList 在模型中使用
 

 程式碼如下 複製程式碼
<?php 
//use app\models\Country;
$countries=Country::find()->all();
 
//use yii\helpers\ArrayHelper;
$listData=ArrayHelper::map($countries,'code','name');
 
echo $form->field($model, 'name')->dropDownList(
                                $listData, 
                                ['prompt'=>'Select...']);
?>


下拉選單的預設值設定我們使用 prompt 關鍵字 例項:

 程式碼如下 複製程式碼

$form->field($searchmodel, 'moneytype')->dropDownList($soucetype, ['prompt' => '請選擇金額來源')])

好的 下拉選單的預設值設定就是這樣簡單,下面我們在說說帶有外掛的文字框預設值是如何設定的
我現在就拿這個表單後面的兩個使用了時間外掛的文字域為例,在這裡 prompt 關鍵字就不行了,我們要使用 placeholder 關鍵字

 程式碼如下 複製程式碼

$form->field($searchmodel, 'startdate')->widget(DatePicker::className(),['clientOptions' => ['dateFormat' => 'yy-mm-dd']])->textInput(['placeholder' => Yii::t('app', 'Start time')])

ActiveForm 類的 dropDownList 方法(優點,預設使用yii的樣式)

1、在控制器的方法裡面 ,我們需要拿到資料,一定是 findAll() 或者是 all() 方法的資料,例項如下:

 程式碼如下 複製程式碼

 public function actionIndex()
    {
        $model = new UserModel();
        $data = Customer::find()->all();

        return $this->render('index', [
            'model' => $model,
            'data' => $data,
        ]);
    }


在檢視頁面,我們使用 yii 的表單生成器。

 程式碼如下 複製程式碼

$form->field($model, 'username')->dropDownList(ArrayHelper::map($data,'id', 'customer_name'));
2.1、dropDownList           --->     yii2.0  下拉列表的方法
2.2、ArrayHelper::map()     --->     構建一個(key => value) 的一維或多維陣列
2.3.1、 $data               --->     資料來源
2.3.2、 id                  --->     option 的 value 值
2.3.3、 customer_name       --->     option 標籤的 值


Html 類的 activeDropDownList方法(優點,可以自定義任何樣式)

1、和第一種方法的第一步一樣,拿到資料。不過多解釋了。

2、\yii\helpers\Html 類為我們提供了下拉列表的實現方法 activeDropDownList 方法

 程式碼如下 複製程式碼
Html::activeDropDownList($model, 'username', ArrayHelper::map($data,'id', 'customer_name'), ['style' => 'border:1px solid red;']);

我沒寫 php 標籤,相信寫過新浪部落格的程式猿都知道,寫了 php 標籤 整個程式碼都被過濾了,所以複製程式碼,自己加上標籤

引數和第一種方法的引數含義相同,不做解釋。

Html 類的 dropDownList方法(優點,可以自定義任何樣式)

1、和第一種方法的第一步一樣,拿到資料。不過多解釋了。
2、\yii\helpers\Html 類為我們提供了下拉列表的實現方法 dropDownList方法

 程式碼如下 複製程式碼
Html::dropDownList('username', null, ArrayHelper::map($data,'id', 'customer_name'), ['class' => 'dropdownlist']);

我沒寫 php 標籤,相信寫過新浪部落格的程式猿都知道,寫了 php 標籤 整個程式碼都被過濾了,所以複製程式碼,自己加上標籤