jquery - PHP write JSON file via AJAX -
i want post data via jquery/ajax json-file, don't receive data json object.
my json content looks this:
foo=abc&bar=def
but want one:
{ "foo" : "abc", "bar" : "def }
html
<form id="foobar"> <label for="bar">a bar</label> <input id="foo" name="foo" type="text" value="" /> <input id="bar" name="bar" type="text" value="" /> <input type="submit" value="send" /> </form>
js
var request; $("#foobar").submit(function(event){ if (request) { request.abort(); } var $form = $(this); var serializeddata = $form.serialize(); request = $.post("datasaveajax.php", {json : json.stringify(serializeddata)}); event.preventdefault(); });
php
<?php $file = fopen("dataajax.json","w+"); $json = $_post['json']; $jsondecode = json_decode($json); fwrite($file, $jsondecode); fclose($file); ?>
if want use serialize
use
var data= json.parse($("#foobar").serializearray()); //not serialize()
if object/array gets passed
.serializearray()
, it's serialized via$.param()
.if string passed
.serialize()
doesn't further.
your code should be
var request; $("#foobar").submit(function(event){ if (request) { request.abort(); } var data= { "foo":$("#foo").val(), "bar":$("#bar").val() }; //don't if want in json formate //var serializeddata = $form.serialize(); request = $.post("datasaveajax.php", {json : json.stringify(data)}); event.preventdefault(); });
or can use
var serializeddata = $form.serializearray();
Comments
Post a Comment