このトピックに関する他の投稿が多数あるため (たとえば、1 つと 2 つ)、質問するのをためらっていますが、これらの投稿の解決策はどれも私には当てはまらないようです。
JSON でエンコードされたオブジェクトをページから PHP コントローラーに渡してから、何らかの情報で応答しようとしています。
Firebug で監視すると、[Post] タブでオブジェクトが送信されているのがわかりますが、$_GET、$_POST、および $_REQUEST 配列を出力すると、json オブジェクトに関しては何も表示されません。$_GET 配列には、少なくとも「update-player」のクエリ文字列が表示されますが、POST は空で、REQUEST は私が持っているローカル Cookie のみを表示します。
これが私のjQueryコードです。ご覧のとおり、現時点では JSON をハードコーディングしています。その意図は、jQuery メソッドでローカル オブジェクトを更新することです。
function sendPlayerUpdate(row, col) {
var playerinfo = [
{
"id": 1,
"row": row,
"col": col
}
];
alert(playerinfo[0].id); //debugging
$.ajax({
type: 'POST',
url:"controller.php?a=update-player",
//data: $.toJSON(playerinfo[0],
data: { json: JSON.stringify(playerinfo) },
contentType: "application/json",
success: function (){
},
dataType: 'json'
});
};
リクエストを処理する対応する PHP コード:
// update player information from AJAX POST
case "update-player":
if (isset($_POST['json'])) echo "json received\n\n";
else echo "json not received\n\n";
echo "GET VARIABLES\n";
print_r($_GET);
echo "\n\nPOST VARIABLES\n";
print_r($_POST);
echo "\n\nREQUEST VARIABLES\n";
print_r($_REQUEST);
そして、私が Firebug で見たもの:
json が受信されない
GET VARIABLES
Array
(
[a] => update-player
)
POST VARIABLES
Array
(
)
REQUEST VARIABLES
Array
(
[a] => update-player
(local cookies)
)