簡體   English   中英

Select2數據返回字符串而不是數組

[英]Select2 data returning string instead of array

我的html中有幾個<select class="searchselect">標記,所有標記都填充有數值。 我正在使用以下代碼初始化Select2:

$(".searchselect").select2({
        ajax: {
            dataType: "json",
            type: "POST",
            data: function (params) {
                return {
                    term: params.term,
                    '_token': token,
                    'data': function () {
                        var result = [];
                        var i = 0;
                        $('.searchselect').each(function () {
                            result[i] = $(this).val();
                            i++;
                        });

                        return result;
                    }
                };
            },
            url: function () {
                var type = $(this).attr('id');
                return '/test/get' + type;
            },
            cache: false,
            processResults: function (data) {
                console.log(data);
                return {
                    results: data
                };
            }
        }
     }); 

在我的PHP中,我有以下代碼:

public function getTest()
{
    return json_encode($_POST['data']);
}

返回的php被記錄在控制台中。

結果是帶有逗號的字符串,用於分隔元素。 但是,這不是應該的。 就像這樣: 1,1,,,,,, (前兩個選擇字段已填充,其余字段仍為空)。 沒錯,但是,當我嘗試訪問第二個元素(數組中的第二個1)時,我需要訪問第三個元素,因為第二個元素是逗號。

public function getTest()
{
    return json_encode($_POST['data'][2]); // <--- this returns a comma instead of a 1
}

哪里出了問題? 為什么使用純字符串而不是數組?

將函數getTest()更改為

public function getTest()
{
    return json_decode($_POST['data']);
}

您正在將json對象編碼為字符串,而不是將其解碼為數組。

暫無
暫無

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

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