本文實(shí)例講述了Yii2框架dropDownList下拉菜單用法。分享給大家供大家參考,具體如下:
dropDownList是yii框架中一個(gè)自帶的下拉功能了解,我們可以直接使用dropDownList來實(shí)現(xiàn)html的select菜單,下面一起來看看。
Yii2.0 默認(rèn)的 dropdownlist 的使用方法.
代碼如下:
<?php echo $form->field($model, 'name[]')->dropDownList(['a' => 'Item A', 'b' => 'Item B', 'c' => 'Item C']); ?>
在yii2中加放請(qǐng)選擇的下拉菜單
代碼如下:
<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...']);
?>
下拉菜單的默認(rèn)值設(shè)置我們使用 prompt 關(guān)鍵字
實(shí)例:
代碼如下:
$form->field($searchmodel, 'moneytype')->dropDownList($soucetype, ['prompt' => '請(qǐng)選擇金額來源')])
好的 下拉菜單的默認(rèn)值設(shè)置就是這樣簡(jiǎn)單,下面我們?cè)谡f說帶有插件的文本框默認(rèn)值是如何設(shè)置的
我現(xiàn)在就拿這個(gè)表單后面的兩個(gè)使用了時(shí)間插件的文本域?yàn)槔?,在這里 prompt 關(guān)鍵字就不行了,我們要使用 placeholder 關(guān)鍵字
代碼如下:
$form->field($searchmodel, 'startdate')->widget(DatePicker::className(),['clientOptions' => ['dateFormat' => 'yy-mm-dd']])->textInput(['placeholder' => Yii::t('app', 'Start time')])
ActiveForm 類的 dropDownList 方法(優(yōu)點(diǎn),默認(rèn)使用yii的樣式)
1、在控制器的方法里面 ,我們需要拿到數(shù)據(jù),一定是 findAll() 或者是 all() 方法的數(shù)據(jù),實(shí)例如下:
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() ---> 構(gòu)建一個(gè)(key => value) 的一維或多維數(shù)組
2.3.1、 $data ---> 數(shù)據(jù)源
2.3.2、 id ---> option 的 value 值
2.3.3、 customer_name ---> option 標(biāo)簽的 值
Html 類的 activeDropDownList方法(優(yōu)點(diǎn),可以自定義任何樣式)
1、和第一種方法的第一步一樣,拿到數(shù)據(jù)。不過多解釋了。
2、\yii\helpers\Html 類為我們提供了下拉列表的實(shí)現(xiàn)方法 activeDropDownList 方法。
代碼如下:
Html::activeDropDownList($model, 'username', ArrayHelper::map($data,'id', 'customer_name'), ['style' => 'border:1px solid red;']);
我沒寫 php 標(biāo)簽,相信寫過新浪博客的程序猿都知道,寫了 php 標(biāo)簽 整個(gè)代碼都被過濾了,所以復(fù)制代碼,自己加上標(biāo)簽
參數(shù)和第一種方法的參數(shù)含義相同,不做解釋。
希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。