Neúspěchem se učím Ajax a narazil jsem na zeď:
Mám pole (pokud na tom záleží, pole ukládá ID čísel podle toho, jaká zaškrtávací políčka uživatel zaškrtává), které je napsané v JavaScriptu.
Mám funkci, která se volá, když uživatel klikne na tlačítko „uložit“. Funkce je následující:
function createAmenities() { if (window.XMLHttpRequest) { //code for IE7+, Firefox, Chrome and Opera xmlhttp = new XMLHttpRequest(); } else { //code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById('message').innerHTML = xmlhttp.responseText; } } var url = "create_amenities.php"; xmlhttp.open("GET", url, true); xmlhttp.send(); }
Moje otázka zní:Co mohu vložit do této funkce, abych vtáhl pole do skriptu php, který se pokouším volat (‚create_amenities.php‘)?
dále, měl bych zkusit použít JSON? A pokud ano, jak mohu odeslat objekt JSON přes ajax?
Předem děkuji.
Odpověď
Pokud má vaše pole více než 1 rozměr nebo jde o asociativní pole, měli byste použít JSON.
Json přemění kompletní strukturu pole na řetězec. Tento řetězec lze snadno odeslat do vaší aplikace php a přeměnit jej zpět na pole php.
Více informací o json:http://www.json.org/js.html
var my_array = { ... }; var json = JSON.stringify( my_array );
V php můžete řetězec dekódovat pomocí json_decode:
http://www.php.net/manual/en/function.json-decode.php
var_dump(json_decode($json));