EDIT: Meine Fehlerprüfung zeigt, dass der PHP ausgeführt wird, aber wenn ich meine .JSON-Datei überprüfen, ist es immer noch die gleiche wie zuvor.Schreiben eines JSON-Objekts in eine vorhandene .json-Datei
Ich entschuldige mich im Voraus, da dies zuvor gefragt wurde, aber ich habe Stunden damit verbracht, verschiedene Dinge auszuprobieren, und keiner hat funktioniert. Hoffentlich könnte dies jemandem in einer ähnlichen Situation helfen. Ich versuche, einen neuen Eintrag an mein vorhandenes JSON-Objekt von Benutzereingaben anzufügen und schreibe das aktualisierte JSON-Objekt zurück in die Datei. Der letzte Teil ist, was mir Ärger macht.
Hier Ajax Ich bin mit meinem json Objekt in eine PHP-Datei
$.getJSON("http://existing.json", function(data){
//append new entry to previous json array
data['posts'].push(objectt);
//confirming that new object is correct
console.dir(data);
//Sending json object to .php file so it can write to .json file
$.ajax({
type : "POST",
url : "json.php",
//data : data, this was changed to
data : {json:data}, //by the suggestion of suggested by madalin ivascu
dataType: 'json'
});
Der obige Codeblock senden ausführt und keine Fehler in der Konsole angezeigt. Hier ist meine Json.php-Datei. Nachdem der nächste Codeblock ausgeführt wurde, hat meine .json-Datei nicht den neuen Eintrag.
$json = $_POST['json'];
if ($_POST['json'])
{
$file = fopen('simple.json','w+');
fwrite($file, $json);
fclose($file);
echo: "File was updated";
}
else
{
// user has posted invalid JSON, handle the error
print "Error json was null";
}
Es ist wie die json_decode aussieht, ist null. Wenn ich console.dir (data) anrufe, heißt das, dass es ein Objekt in der Konsole ist. Ich kann den Code zur Verfügung stellen, der das Datenobjekt erzeugt, wenn Sie denken, dass das das Problem ist –
ändern Sie die if-Bedingung, um zu prüfen, ob '$ _POST ['json']' existiert – madalinivascu
Ich habe meine Op. Die if-Anweisung gibt true zurück, aber die .json-Datei wird immer noch nicht aktualisiert. –