Javascript Create JSON Hash Array for jQuery AJAX -
i desperately trying manually create json-style array in javascript send on network via jquery's ajax method.
var fieldsobj = {fields:[]} $(".fact_field", fact).each(function(index, field){ var index = $(field).attr("data-index"); var name = $(".fact_field_label", field).text().trim(); var value = $(".fact_field_value", field).text().trim(); fieldsobj["fields"].push({index:index, name:name, value:value}); }); //... $.ajax({ type: 'put', url: url, data: fieldsobj, success: function(data){... }, complete: function(){... } });
what want following:
{fields => [{index:0, name:1, value:2},{...},{...}]}
what this:
{"fields"=>{"0"=>{...}, "1"=>{..}, "2"=>{...}, "3"=>{...}}
what doing wrong?
when pass object data
property, jquery pass url-encoded form parameters (e.g. foo=bar&moo=too
) in body. think want pass json through body.
grab json2.js
written uncle crockford , use json.stringify
(that library provides functionality browsers still don't support it):
$.ajax({ type: 'put', url: url, data: json.stringify(fieldsobj), contenttype: "application/json", success: function(data){... }, complete: function(){... } });
and don't forget set contenttype
property! on php side, can use json_decode
decode raw body content:
$fieldsobj = json_decode(@file_get_contents('php://input'));
Comments
Post a Comment