php – yii2 select2 by kartik-v设置默认值
发布时间:2020-12-13 16:59:45 所属栏目:PHP教程 来源:网络整理
导读:我有一个关于yii2 kartik-v widget select 2的问题. 窗口小部件附加到我视图中的字段 ?=$form-field($model,'address')-widget(Select2::className(),[ 'options' = ['placeholder' = 'Inserta an address '],'pluginOptions' = [ 'allowClear' = true,'mini
我有一个关于yii2 kartik-v widget select 2的问题.
窗口小部件附加到我视图中的字段 <?= $form->field($model,'address')->widget(Select2::className(),[ 'options' => ['placeholder' => 'Inserta an address '],'pluginOptions' => [ 'allowClear' => true,'minimumInputLength' => 3,'ajax' => [ 'url' => Url::to(['register/addresses']),'dataType' => 'json','data' => new JsExpression('function(params) { return {q:params.term}; }') ],'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),'templateResult' => new JsExpression('function(address) { return address.name; }'),'templateSelection' => new JsExpression('function (address) { return address.name; }'),],'pluginEvents' => [ "select2:select" => "function(e) { // some function }",]); ?> 如果在我的控制器中我想将此值设置为此字段 喜欢:$model-> address =“Some Value”;在视图上该字段保持空白 我能做什么? UPDATE! 正如文档所说我可以使用选项:’initValueText’如果我使用此插件的ajax版本.所以我试着设置’initValueText’=> $model->地址,但结果是一样的 解决方法
问题是这样的:
'escapeMarkup' => new JsExpression('function (markup) { return markup; }'), 看来这个插件需要键’templateResult’和’templateSelection’的特定返回. 我已经使用address.text(而不是adress.name)修改了JsExpression返回值作为指导示例:Link. 然后我也修改了返回结果的PHP方法: public function actionAddresses($q = NULL,$id = NULL) { Yii::$app->response->format = Response::FORMAT_JSON; $results = array(); if (!is_null($q)) { $geocoder = new GeocodingClient(); $request = $geocoder->lookup(['address' => $q]); $counter = 1; foreach ($request['results'] as $key => $value) { $results['results'][] = [ 'id' => $counter,'text' => $value['formatted_address'],// Instead of 'name' 'coordinate' => $value['geometry']['location'] ]; $counter++; } } return $results; } 我希望这可以帮助有类似问题的人. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |