Odeslání objektu Javascript do PHP přes Ajax

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));