剛開始使用yii,需要實現下拉多選搜尋,就找到了select2這個元件,先看看實現後的效果:
如何安裝select2網上有很詳細的教程,這裡不做贅述。
完成後只需要在視**件use kartik\select2\select2就可以了。
具體的檢視中的**如下:
=
$form->field($model, 'search')->widget(select2::classname(), [
'options' => ['placeholder' => '請輸入使用者id ...'],
'pluginoptions' => [
'id' => new j***pression("function(rs) "),
'placeholder' => 'search ...',
'multiple' => true,
'allowclear' => true,
'language' => [
'errorloading' => new j***pression("function () "),
],'ajax' => [
'url' => url::to(['gm-account-info/search-title']),
'datatype' => 'json',
'data' => new j***pression('function(params) ; }')
],'escapemarkup' => new j***pression('function (markup) '),
'templateresult' => new j***pression('function(res) '),
'templateselection' => new j***pression('function (res) '),
],]);
?>
控制器中**如下:
$out = ['results' => ['userid' => '', 'text' => '']];
if (!$q)
$data = gmaccountinfo::find()
->select('uid as userid, account_name as text')
->andfilterwhere(['like', 'uid', $q])
->asarray()
->all();
$out['results'] = array_values($data);
echo json_encode($out);die;
這樣出來的結果是這樣的:
搜尋結果是下拉顯示出來了,但是無法選中。
最後將控制器中的**做了一點修改:
$out = ['results' => ['id' => '', 'text' => '']];
if (!$q)
$data = gmaccountinfo::find()
->select('uid as id, uid as text') //userid=>id
->andfilterwhere(['like', 'uid', $q])
->asarray()
->all();
$out['results'] = array_values($data);
echo json_encode($out);die;
將返回資料的格式調整為[『id』=>」,』text』=>],就正常了。
結論:使用select2 元件時,後端返回的資料格式必須是[『id』=>」,』text』=>]這個格式的。
yii2 常用元件 表單
簡介 yii2中最常用的元件activeform,通過對activeform的靈活運用,能有效的提公升開發效率,所以這個是不得不說的乙個yii2元件,那麼下面就來了解一下yii2.0的activeform的具體用法 用法 form signup 文字框的標題 field model,test1 la...
select2 使用筆記
1.把頁面中 可能不在同乙個頁面,一般都是在列表頁介面 的tabindex刪掉 tabindex 1 role dialog aria labelledby mymodallabel aria hidden true 2.重寫enforcefocus方法 fn.modal.constructor.p...
select2的簡單使用
修改 type template.html 引入js stylesheet href plugins select2 select2.css stylesheet href plugins select2 select2 bootstrap.css stylesheet href plugins a...