簡體   English   中英

Yii2 Kartik Select2 Ajax控制器-結果未顯示

[英]Yii2 Kartik Select2 Ajax Controller - Result not showing

我在yii2應用程序中設置了一個select2。 我希望select2通過ajax從控制器操作中獲取結果數據。 因此,我在此處查找了文檔並進行了一些修改。 不幸的是,即使我返回固定/平面json結果,也不會顯示任何結果。

視圖

Select2::widget([
    'name' => 'kv-repo-template',
    'pluginOptions' => [
        'allowClear' => true,
        'minimumInputLength' => 3,
        'language' => [
            'errorLoading' => new JsExpression("function () { return 'Waiting for results...'; }"),
        ],
        'ajax' => [
            'url' => Url::to(['/site/address']),
            'dataType' => 'json',
            'data' => new JsExpression('function(params) { return {q:params.term}; }'),
        ],
        'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
        'templateResult' => new JsExpression('function(city) { console.log(city); return city.text; }'),
        'templateSelection' => new JsExpression('function (city) { return city.text; }'),
    ],
]);

SiteController.php

public function actionAddress($q = null, $id = null) {
    $out['results'] = ['id' => 1, 'text' => 'test'];
    Yii::$app->response->format = Response::FORMAT_JSON;
    return $out;
}

如果我調試,我看到控制器被調用。 但是templateResult函數僅返回(console.log)默認值“ Searching…”

那么,我將小部件配置錯誤嗎? 還是我想念這里的東西?

在此先感謝您的幫助! 歡呼聲,盧克

一切都很好,但是您將返回results鍵的JSON對象,而不是Object請以Array的形式返回。

public function actionAddress($q = null, $id = null) {
   $out['results'] = [['id' => 1, 'text' => 'test']]; //convert it as arrays
   Yii::$app->response->format = Response::FORMAT_JSON;
   return $out;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM