Bonjour,
Alors que je voulais construire un tableau associatif en javascript, je suis tombé sur ce message dans lequel il est précisé par Julien Royer que pour créer un tableau associatif en javascript il était fortement conseillé d'utiliser un objet.
Résultat :
Lorsque je le parcours, tout se passe comme il faut, je peux le modifier, etc...
Maintenant il me faut l'envoyer à un script PHP à l'aide d'ajax (j'utilise les prototypes) comme ceci :
Le problème est que lorsque, dans mon fichier treatmentAjax.php, je fais un print_r de $_POST['data'] je me retrouve avec [object Object] et je ne sais pas du tout comment faire pour le parcourir et retrouver mes valeurs.
(J'ai également essayé en serializant, lorsque j'unserializais dans treatmentAjax.php je voyais mes valeurs dans le print_r mais elles étaient entourées de ___PHP_Incomplete_Class Object et je ne pouvais pas accéder aux données)
J'espère avoir été clair dans mon explication et je remercie d'avance les personnes qui me répondront
.
Solution :
Bon finalement, après quelques recherches supplémentaires je me suis rendu qu'il fallait utiliser JSON.
A l'aide des prototypes je retourne mon tab en JSON et l'envoie en Ajax, comme suit :
Puis, dans treatmentAjax.php :
Voilou, merci quand même, peut-être que ça aidera d'autres personnes.
Modifié par ato (06 Jul 2007 - 18:32)
Alors que je voulais construire un tableau associatif en javascript, je suis tombé sur ce message dans lequel il est précisé par Julien Royer que pour créer un tableau associatif en javascript il était fortement conseillé d'utiliser un objet.
Résultat :
var tab = {'1':'','2':'','3':''};
tab['1'] = {'bla':'','bli':'','blu':''};
tab['1']['bla'] = new Array('un', 'deux', 'trois');
tab['1']['bli'] = new Array('quatre', 'cinq', 'six');
...
Lorsque je le parcours, tout se passe comme il faut, je peux le modifier, etc...
Maintenant il me faut l'envoyer à un script PHP à l'aide d'ajax (j'utilise les prototypes) comme ceci :
new Ajax.Request('treatmentAjax.php', {method:'post', postBody:'data='+tab, asynchronous: false});
Le problème est que lorsque, dans mon fichier treatmentAjax.php, je fais un print_r de $_POST['data'] je me retrouve avec [object Object] et je ne sais pas du tout comment faire pour le parcourir et retrouver mes valeurs.
(J'ai également essayé en serializant, lorsque j'unserializais dans treatmentAjax.php je voyais mes valeurs dans le print_r mais elles étaient entourées de ___PHP_Incomplete_Class Object et je ne pouvais pas accéder aux données)
J'espère avoir été clair dans mon explication et je remercie d'avance les personnes qui me répondront

Solution :
Bon finalement, après quelques recherches supplémentaires je me suis rendu qu'il fallait utiliser JSON.
A l'aide des prototypes je retourne mon tab en JSON et l'envoie en Ajax, comme suit :
new Ajax.Request('treatmentAjax.php', {method:'post', postBody:'data='+$H(tab).toJSON(), asynchronous: false});
Puis, dans treatmentAjax.php :
print_r(json_decode($_POST['data'], true)); // true pour que json_decode() retourne un tableau associatif
Voilou, merci quand même, peut-être que ça aidera d'autres personnes.
Modifié par ato (06 Jul 2007 - 18:32)