abgerufen werden Ich sende JSON in einem POST zu meinem PHP-Skript. Ich kann die Objektwerte nicht vom JSON abrufen. Das Format des POST ist wie folgt:JSON konnte nicht von Ajax POST mit PHP
[{ "name": "Betrag", "Wert": "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);
}
Beliebig Idee, was ich falsch mache?
Mögliche Probleme: 1) versuchen Sie, console.log (formData) und überprüfen Sie, ob es korrekt ist. 2) console.log (Datenresponse) und prüfen, ob der Zugriff auf die Daten über die Datenantwort möglich ist. 3) in PHP, überprüfen Sie, ob Sie wirklich beitreten der if, vielleicht Protokollierung Zeug in einer TXT-oder HTML-Datei, um zu verfolgen, was passiert (verwenden Sie file_put_contents). In all diesen Fällen ist die JavaScript-Konsole Ihr bester Freund, es sagt Ihnen normalerweise, was NICHT funktioniert oder was es als Antwort zurückbekommt. PHP tut das aber nicht (nicht direkt über eine AJAX-Anfrage), also kümmere ich mich auch um den dritten Punkt. – briosheje
siehe @swaps Antwort unten. Sie haben eine Syntax für ein Array, das viele Name/Wert-Tupel enthalten kann. Behandle es als ein Array. – YvesLeBorg
Webkonsole war nicht viel Hilfe. Ich habe die Inhalte aus den PHP-Skripten in eine txt-Datei geschrieben. Ausgabe ist - a: 5: {i: 0; a: 2: {s: 4: "Name"; s: 6: "Betrag"; s: 5: "Wert"; s: 2: "12";} } – mmmbaileys