POSTでPHPスクリプトにJSONを送信しています。 JSONからオブジェクト値を取得できません。次のようにPOSTの形式は:PHPを使用してAjax POSTからJSONを取得できません
[{ "名前": "量"、 "値": "12"}]
のJavascript
("#idForm").submit(function(e) {
var url = "post.php"; // the script where you handle the form input.
var formData = JSON.stringify($("#idForm").serializeArray());
alert(formData);
$.ajax({
type: "POST",
url: url,
data: formData,
dataType: 'json',
success: function(dataresponse) {
document.getElementById("orderamount").innerHTML = dataresponse.orderamount;
}
});
PHP
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$data = array();
$json = json_decode(file_get_contents('php://input'), true);
$data['orderamount'] = $json['amount'];
//this works
//$data['orderamount'] = '12345';
echo json_encode($data);
}
どれでも私が間違ってやっているアイデア?
可能性のある問題を試すことができます。 2)console.log(dataresponse)を実行し、dataresponse.orderamountでデータにアクセスするのが正しいかどうかを確認します。 3)PHPで、実際にifに参加しているかどうか、おそらく何が起こっているのかを追跡するために、.txtファイルまたは.htmlファイルにログを記録する(file_put_contentsを使用する)かどうかを確認してください。これらのすべてのケースでは、javascriptコンソールはあなたの親友です。通常、何が動作していないのか、何が応答として戻ってきたのかを伝えます。 PHPは(ただし、AJAXリクエストを直接経由するのではありません)、したがって第3の点も注意してください。 – briosheje
下記の@swapの答えを見てください。あなたは、多くの名前/値の組を含む配列の構文を持っています。それを配列として扱います。 – YvesLeBorg
ウェブコンソールはあまり役に立ちませんでした。私は、PHPスクリプトからtxtファイルに内容を書きました。出力は - a:5:{i:0; a:2:{s:4: "name"; s:6: "amount"; s:5: "value"; s:2: "12";} } – mmmbaileys