5

私の coldfusion ページから返される json 文字列は次のようになります[{"client":"Asante","id":12},{"client":"City of Lancaster","id":14},{"client":"Massey Energy","id":35},{"client":"Northeast Utilities","id":68},{"client":"Washtenaw","id":50}]。Firebug は、すべてが完全に機能していると主張していますが、select2 プラグインにはデータが表示されません。

問題が何であるかを知っている人はいますか?列名などを返す必要がありますか?

select2 呼び出し:

$(".select").select2({
    allowClear: true,
    blurOnChange: true,
    openOnEnter: false,
    ajax: {
        url: "/surveymanagement/admin/client.cfc",
        dataType: 'json',
        data: function (term, page) {
            return {
                method: "GetClientsByName",
                name: term
            };
        },
        results: function (data, page) {
            return { results: data };
        }
    }
});
4

3 に答える 3

6

[{"text":"Asante","id":12}, ...]あなたのデータはあなたが渡す必要があるフォーマットでなければなりません{results: data, text: 'client'}

于 2013-03-01T15:34:52.437 に答える
6

あなたのjson文字列がそれ以外のものを使用する必要がある場合は、"text": "something"必要な追加のものがありますformatResults.データを表示するために使用します. 修正版は次のとおりです。

$(".select").select2({
    allowClear: true,
    blurOnChange: true,
    openOnEnter: false,
    ajax: {
        url: "/surveymanagement/admin/client.cfc",
        dataType: 'json',
        data: function (term, page) {
            return {
                method: "GetClientsByName",
                name: term
            };
        },
        results: function (data, page) {
            return { results: data };
        }
    },
    formatResult: function (data) {
        return "<div class='select2-user-result'>" + data.client + "</div>";
    },
    formatSelection: function (data) {
        return data.client;
    }
});

それ以外の場合は、フォーマットを使用するだけでよいというアルンは正しいです[{"id":1,"text":"client"}]

于 2013-03-01T15:37:43.927 に答える
2

はい、古すぎます:)しかし、今日はそれが必要で、次のように解決しました(Symfony2を使用):

$opts = [];

foreach($items as $item)

    $opts['results'][] = ['text' => $item->getXyz(), 'id' => $sk->getId()];

return new JsonResponse($opts);

鍵となる「結果」が重要

于 2015-12-09T08:02:26.150 に答える