Bonjour,
cela fait 3 semaines que je galère sur le passage en ajax de data issues d'un formulaire (multiple checkbox) vers le serveur.
Je pense que mon problème se résume à la mise en form de ces data.
J'ai essayé plusieurs type (chaine de caractère séparées par des virgules, tableau).
Malheureusement je ne comprends pas le format qui doit être passé dans cette variable ainsi que comment récupérer les data envoyées du serveur vers le client.
Quelqu'un pourrait-il faire un résumé des formats à passer (en particulier dans le cas d'un array à envoyer vers le serveur), et les méthodes pour mettre en forme ces data ?
En résumé, mes questions sont précises :
1 - Quel(s) format(s) attend la variable data qui passe du client vers le serveur et quelles méthodes permettent cette mise en forme de façon simples sachant que la data de départ est un tableau ($key=>$value). (j'ai essayé serialize, json_encode, une mise en forme manuelle...). D'après ce que j'ai compris les data vont dans la variable $_POST côté serveur.
Malgré tous mes efforts je n'arrive à récupérer côté serveur que des valeurs fixes, mais pas de variables :(
2 - Que renvoie le serveur ? (le code html de toute ma page ? ou simplement des data que l'on peut choisir avec un code php coté serveur ?)
3 - Quelles méthodes permettent de récupérer les data qui proviennent du retour de la requête ajax
4 - Une dernière question qui me taraude : j'ai l'impression de galérer à cause du twitter bootstrap que j'utilise. Est-il possible que l'encapsulation des checkbox avec du code de mise en forme (toggle button) cause un problème de transmission des data ?
J'utilise ce code javascript :
$.ajax({
type: "POST",
url: "index",
data: monTableau($key=>$value),
success: function(data,textstatus,jqXHR){
//méthode permettant de récupérer les data provenant du serveur (Quelle format est récupéré ?? peut-on choisir ?)
}
});
EDIT :
Un exemple concret de mon problème :
//ceci passe bien les data au serveur
$.ajax({
type: "POST",
url: "index",
data: {
yop : "plop",
azea : "aeazeaz"
},
success: function(data,textstatus,jqXHR){
$('#content').html(data);
}
});
//ceci envoie un tableau vide au serveur
//categories = {sciences:"sciences", international:"0", culture:"0"}
$.ajax({
type: "POST",
url: "index",
data: categories,
success: function(data,textstatus,jqXHR){
$('#content').html(data);
}
});
Je vous remercie de l'aide que vous voudrez bien m'accorder.
Piverte
Je viens de trouver la réponse à mon format de data (donc à la question 1) :
le format d'un tableau a envoyer vers le php doit être du type key1=value1&key2=value2&key3=value3...
Personnellement je mets ces data au bon format à la main, si vous avez une astuce pour cette mise en forme, n'hésitez pas à poster