JSON Post-und Decode-array PHP
Ich bin tring post ein array an PHP-Datei mithilfe von JSON. Es funktioniert nicht. Das problem ist es passiert nichts. Wenn ich decomment datatype:"json" bekomme ich dann die Warnung (aber ohne Daten).
Dies ist mein jquery code
var arr = new Array();
arr.push('1','Brussels|25');
arr.push('2','Antwerp|40');
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "jsondecode.php",
data: JSON.stringify(arr),
dataType: "json",
success: function(data){alert(data);},
failure: function(errMsg) {
alert(errMsg);
}
});
Und das ist mein PHP-code (jsondecode.php);
<?php
$array = json_decode($_POST["arr"]);
foreach($array as $el){
$el_array=explode('|',$el);
echo"City=".$el_array[0]." And Age = ".$el_array[1]."";
}
?>
Weiß jemand ein nützliches tutorial dazu?
Was bedeutet "funktioniert nicht" konkret?
Was meinst du mit "funktioniert nicht"?
was funktioniert nicht?
Nichts passiert. Wenn ich die Auskommentierung dataType:"json", bekomme ich die Warnung, aber ohne die Daten
Was meinst du mit "funktioniert nicht"?
was funktioniert nicht?
Nichts passiert. Wenn ich die Auskommentierung dataType:"json", bekomme ich die Warnung, aber ohne die Daten
InformationsquelleAutor Michael V | 2013-08-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du posten, um die Daten in diesem format abrufen wie
$_POST["arr"]
Der Check-in-Konsole, welche Daten senden zu
jsondecode.php
.Keine Ausgabe in der Konsole
Bedeutet, dass keine Daten senden zu
jsondecode.php
?In der Tat, es sei denn, ich lösche den dataType:'json' Zeile keine Daten gesendet
InformationsquelleAutor Yogesh Suthar
Was zum Teufel wollen Sie?
Es sieht aus, als wenn Sie versuchen, die Schlüssel-Wert-Paare in das JavaScript-Array mit
arr.push('1', 'Brussels|25');
erwartet ein array mit "Brüssel|25" unter dem Schlüssel "1" - aber aufpassen, erstellen Sie dieses array:["1", "Brussels|25", "2", "Antwerp|40"]
.Wenn Sie möchten, senden json, senden Sie json-Daten:
dann deinen ajax-Aufruf:
So brauchen Sie nicht zu explodieren, werden die Daten server-seitig.
Server-seitige Skript:
Hoffe, dies hilft Ihnen jetzt.
@edit: By the way, verwenden Sie
console.log()
oderconsole.error()
anstelle von alert. Alert wird dazu führen, dass Skripts anhalten, bis Sie auf ok klicken, und Sie können keine Objekte sehen, die in eine Warnung.@2. edit: das script jetzt getestet, ich entfernt unnötigen code und Hinzugefügt, der server-seitige code
Passen Sie Ihr php-Skript zu ändern? Versuchen Sie, hallte etwas in der jsondecode.php - Datei, um sicherzustellen, dass Sie laden das richtige Skript und es ist definitiv Echos etwas.
Ich legte folgende in die php-Skript echo"postarr=".$_POST["jsonarray"]; in der Konsole sehe ich nur die Meldung " Erfolg: postarr=', also ohne die Daten
Dies zeigt Ihnen, dass es keine "jsonarray" - Schlüssel in $_POST. Versuchen Sie eine
var_dump($_POST);
in Ihrem php-Skript.Bekomme ich ein leeres array als Antwort "Erfolg: array(0) { }"
InformationsquelleAutor Александр Фишер
Ersetzen :
Durch:
InformationsquelleAutor Sankalp Mishra
Arbeitete für mich:
JS:
PHP:
InformationsquelleAutor user1371961