加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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;
}

我希望这可以帮助有类似问题的人.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读