0
我有一對<select class="searchselect">
標籤在我的HTML,所有填寫數字值。我用下面這段代碼初始化選擇二: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,,,,,,
(前兩個選擇字段已填滿,其餘仍爲空)。但是,當我嘗試訪問第二個元素(數組中的第二個元素)時,我需要訪問第三個元素,因爲第二個元素是逗號。
public function getTest()
{
return json_encode($_POST['data'][2]); // <--- this returns a comma instead of a 1
}
哪裏出問題了?爲什麼它使用純字符串而不是數組?
json_decode而不是json_encode? – baskin
嘗試'返回$ _POST ['data'];''不帶'json_encode',因爲它已經在JSON中 – Jag