J'apprends l'Ajax par échec et j'ai heurté un mur:
J'ai un tableau (si cela est important, le tableau stocke les identifiants numériques en fonction des cases à cocher que l'utilisateur vérifie) qui est écrit en Javascript.
J'ai une fonction qui est appelée lorsque l'utilisateur clique sur le bouton "enregistrer". La fonction est la suivante:
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();
}
Ma question est: Que puis-je mettre dans cette fonction pour tirer le tableau dans le script php que j'essaie d'appeler ('create_amenities.php')?
en outre, dois-je essayer d'utiliser JSON? Et si oui, comment pourrais-je envoyer un objet JSON via ajax?
Merci d'avance.
Si votre tableau a plus de 1 dimension ou est un tableau associatif, vous devez utiliser JSON.
Json transforme une structure de tableau complète en chaîne. Cette chaîne peut facilement être envoyée à votre application php et reconvertie en tableau php.
Plus d'informations sur json: http://www.json.org/js.html
var my_array = { ... };
var json = JSON.stringify( my_array );
En php, vous pouvez décoder la chaîne avec json_decode:
http://www.php.net/manual/en/function.json-decode.php
var_dump(json_decode($json));
Faites une boucle sur le tableau et ajoutez à chaque fois encodeURIComponent('keyname[]') + '=' + encodeURIComponent(theArray[i]) + '&'
à la chaîne de requête.
en outre, dois-je essayer d'utiliser JSON?
Vous pourriez, mais cela signifierait décoder JSON à l'autre extrémité au lieu de laisser la gestion normale des formulaires s'en occuper.
Et si oui, comment pourrais-je envoyer un objet JSON via ajax?
Il y a rien de tel qu'un objet JSON . JSON prend la forme d'une chaîne et vous pouvez inclure des chaînes dans les chaînes de requête (n'oubliez pas de encodeURIComponent
).