POSTを使用してAJAX経由でデータをphpファイルに送信します。文字列を送信するだけで問題なく動作しましたが、JS オブジェクトを JSON で送信し、PHP 側でデコードしたいと考えました。
コンソールでは、データが正しく送信されていることがわかりますが、PHP 側では json_decode が NULL を返します。
私は次のことを試しました:
this.getAbsence = function()
{
alert(JSON.stringify(this));
jQuery.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "ajax/selectSingle.php?m=getAbsence",
data: JSON.stringify(this),
success : function(data){
alert(data);
}
});
}
PHP:
echo $_POST['data'];
echo json_decode($_POST['data']);
echo var_dump(json_decode($_POST['data']));
と:
this.getAbsence = function()
{
alert(JSON.stringify(this));
jQuery.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "ajax/selectSingle.php?m=getAbsence",
data: {'Absence' : JSON.stringify(this)},
success : function(data){
alert(data);
}
});
}
PHP:
echo $_POST['Absence'];
echo json_decode($_POST['Absence']);
echo var_dump(json_decode($_POST['Absence']));
アラートは、すべてが問題ないことを確認するためのものでした...
はい、通常の文字列は正しくエコーされました:-)