Musím napísať json objekt do súboru .json pomocou javascript a php. Zdá sa, že objekt json uchováva hodnoty správne, ale php súbor sa nezdá, že beží tak, aby sa nič nestalo.
Vďaka.
moja funkcia javascript, ktorá sa volá po kliknutí na tlačidlo:
function save_crime()
{
//json object, v1, v2, v3 etc are variables whose values are set in a different function
var jsonObject = { "crime" : { "violence" : { "violence1" : v1,
"violence2" : v2,
"violence3" : v3
},
"burglary" : { "burglary1" : b1,
"burglary2" : b2
},
"robbery" : { "robbery1" : r1,
"robbery2" : r2
},
"criminal" : { "criminal1" : c1,
"criminal2" : c2,
"criminal3" : c3
}
}
}
//jQuery to post json object to json.php for writing to json file
$.ajax({
type : "POST",
url : "json.php",
dataType : "json",
data : {
json : JSON.stringify(jsonObject)
}
});
}
php súbor pre písanie do súboru .json:
<?php
$json = $_POST["json"];
$info = json_encode($json);
$file = "crimes.json";
$handle = fopen($file, "w");
fwrite($handle, $info);
fclose($handle);
?>
odpovede:
1 pre odpoveď č. 1Píšete Reťazec JSON do súboru, nemusíte dekódovať ako jeho reťazec už z časti JS (JSON.stringify(jsonObject)
).
Stačí to napísať priamo.
file_put_contents("crimes.json", $_POST["json"]);
Je lepšie dostať odpoveď zo servera, aby ste vedeli, že akcia je vykonaná správne. Použi $.post
skratku namiesto $.ajax
.
$.post(
"json.php",
{
json : JSON.stringify(jsonObject)
},
function (data, textStatus, jqXHR){
}
);