0
<select class="searchselect">
というタグがHTMLにあり、すべて数値で埋められています。私は、Selectセレクトを初期化するために、次のコードを使用しています:私のPHPで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
};
}
}
});
私は次のコードを持っている:
public function getTest()
{
return json_encode($_POST['data']);
}
返さPHPがコンソールに記録されますされています。
結果は、要素を区切るためにカンマで区切られた文字列です。しかし、これはそうではありません。これは次のようなものです:1,1,,,,,,
(最初の2つの選択フィールドは塗りつぶされ、残りは空のままです)。しかし、2番目の要素(配列の2番目の要素)にアクセスしようとすると、2番目の要素がカンマであるため、3番目の要素にアクセスする必要があります。
public function getTest()
{
return json_encode($_POST['data'][2]); // <--- this returns a comma instead of a 1
}
どこが間違っていますか?配列の代わりに単純な文字列を使用するのはなぜですか?
json_encodeではなくjson_decode? – baskin
'$ JSON ['data'];' JSONに既に入っているので、 'json_encode'を使わないで' return $ _POST ['data']; – Jag