2017-07-20 5 views
0

Ich versuche, JSON-Daten von jQuery an PHP übergeben, damit ich eine JSON-Datei überschreiben kann. Das Problem, das ich habe, ist, dass ich nicht herausfinden kann, ob die PHP-Datei meinen JSON empfängt, den ich sende. Ich bin ein bisschen ein Anfänger ..Jquery Post JSON zu PHP

Ich habe derzeit dies - es macht nicht den Trick, und ich bin ein bisschen fest. Jeder Rat wäre großartig. Ich werde wachsam - "Richtig", aber nichts von PHP.

var testjson = [{ 
    "name": 1, 
    "myArray": [{ 
    "0":"1", 
    "2":"3" 
    },{ 
    "1":"2", 
    "3":"4" 
    }], 
    "friends":40 
}]; 

$.ajax({ 
    type: "POST", 
    url: "php/write.php", 
    data: testjson, 
    dataType: "html", 
    contentType : 'application/json; charset=utf-8' 
}).done(function(data, status) { 
    alert('Right'); 
}).fail(function(data, status) { 
    alert("Wrong: " + status); 
}); 
$value = json_decode($_POST); 
print_r($value); 
+0

Also, was bekommen Sie, wenn Sie Ihren Code ausführen? Sie müssen uns das Problem mitteilen. –

+0

versuchen, diese 'dataType:" html ",' in 'dataType: 'json',' – vietnguyen09

+1

@ vietnguyen09 - Diese Einstellung ist für was die Ajax-Anfrage zurück erwartet. Es hat keine Auswirkung auf das, was es sendet. In dieser Situation würde jQuery wahrscheinlich nur dazu führen, dass jQuery einen "parse error" auslöst, da es keine json-Zeichenkette zurückgibt. –

Antwort

1

Verwenden Sie den Code unten

var testjson =[{"name":1,"myArray":[{"0":"1","2":"3"}, 
      {"1":"2","3":"4"}],"friends":40}]; 

var myString = JSON.stringify(testjson); 

$.ajax({ 
    type: "POST", 
    url: "write.php", 
    data: myString, 
    dataType: "html" 
    }).done(function (data, status) { 
    alert('Right'); 
}) 
.fail(function (data, status) { 
    alert("Wrong: "+status); 
}); 
}); 

Und in php

$json = json_decode(file_get_contents("php://input")); 
print_r($json); 
+0

Ich habe es gerade versucht, kein Glück .. – user3675220

0

Verstanden.

Wusste es war super einfach. Danke für Ihre Hilfe!

$value = $_POST; 
print_r($value);