Chci poslat data json do ajaxu, ale jak převedete proměnné na json nebo převedete pole na json?
$(".confirm_order").click(function(event) { event.preventDefault(); var street = $("#street").val(); var location = $("#location").val(); var number = $("#number").val(); var f = ??? $.ajax({ type: 'post', url: "/orders", dataType: "json", data: f, success: function (l) { alert("Done"); } }); });
Odpověď
Pokud opravdu chcete převést data do JSON, musíte vytvořit objekt nebo pole a použít JSON.stringify
(k dispozici v novějším prohlížeči a lze jej načíst zde):
var f = JSON.stringify({street: street, location: location, number: number});
ale nemůžete jen nastavit data
atribut f
pak. Musíte ji přiřadit jiné proměnné:
data: {data: f}
To vytvoří parametry POST takto:
data={"number":"value of number","location:...}
Zde však není důvod vytvářet JSON. Hodnoty bych poslal jako normální parametry příspěvku. K tomu stačí vytvořit objekt jako výše a přiřadit jej data
:
data: {street: street, location: location, number: number}
Tím se vytvoří parametry POST:
street=valueofstreet&location=valueoflocation&...
Bylo by to jednodušší, protože nemusíte analyzovat JSON na straně serveru.