IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] AJAX : Passage d'un tableau 2D en paramètre


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 28
    Par défaut [AJAX] AJAX : Passage d'un tableau 2D en paramètre
    Bonjour, j'aurais aimé savoir s'il était possible de passer un tableau 2D en paramètre via POST en Ajax.

    Voici une partie de mon code Ajax
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    		// taille du tableau contenant la liste des services et responsables
    		Donnees += "&taille_tab_liste_service="+tab_liste_service.length+"";
     
    		// récupération des informations des services et responsables
    		for (i=0; i<tab_liste_service.length; i++) {
     
    			Donnees += "&tab_liste_service["+i+"][0]="+tab_liste_service[i][0]+"";
    			Donnees += "&tab_liste_service["+i+"][1]="+tab_liste_service[i][1]+"";
    			Donnees += "&tab_liste_service["+i+"][2]="+tab_liste_service[i][2]+"";
    			Donnees += "&tab_liste_service["+i+"][3]="+tab_liste_service[i][3]+"";
    		}
     
    		xhr.open("POST","php/requete.php",true);
    		xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset:UTF-8');
    		xhr.send(Donnees);

    Voici la page php qui reçoit les infos
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    			$taille_tab_liste_service = utf8_decode($_POST['taille_tab_liste_service']);
     
    			for ($i=0; $i<$taille_tab_liste_service; $i++)
    			{
    				$tab_liste_service[$i][0]=addslashes(utf8_decode($_POST['tab_liste_service[$i][0]']));
    				$tab_liste_service[$i][1]=addslashes(utf8_decode($_POST['tab_liste_service[$i][1]']));
    				$tab_liste_service[$i][2]=addslashes(utf8_decode($_POST['tab_liste_service[$i][2]']));
    				$tab_liste_service[$i][3]=addslashes(utf8_decode($_POST['tab_liste_service[$i][3]']));
    			}
     
    			echo $tab_liste_service[0][0];
    ResponseText me renvoie "undefined".

    Où est mon erreur svp?
    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 28
    Par défaut
    Bon, le problème est résolu, ou du moins contourné.

    Premièrement, le responseText me renvoyait à chaque fois "undefined" parce que je l'avais écrit "responsetext".

    Ensuite, pour contourner le problème, j'ai enlevé les crochets dans les variables. J'avais l'impression que PHP comprenait que c'était un tableau alors que ajax envoyait de simples variables dont le nom était composé de crochets.

    Voici mon nouveau code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    		// taille du tableau contenant la liste des services et responsables
    		Donnees += "&taille_tab_liste_service="+tab_liste_service.length+"";
     
    		// récupération des informations des services et responsables
    		for (i=0; i<tab_liste_service.length; i++) {
     
    			Donnees += "&tab_liste_service-"+i+"-0="+tab_liste_service[i][0]+"";
    			Donnees += "&tab_liste_service-"+i+"-1="+tab_liste_service[i][1]+"";
    			Donnees += "&tab_liste_service-"+i+"-2="+tab_liste_service[i][2]+"";
    			Donnees += "&tab_liste_service-"+i+"-3="+tab_liste_service[i][3]+"";
    		}

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    			$taille_tab_liste_service = utf8_decode($_POST['taille_tab_liste_service']);
     
    			for ($i=0; $i<$taille_tab_liste_service; $i++)
    			{
    				$tab_liste_service[$i][0]=addslashes(utf8_decode($_POST['tab_liste_service-'.$i.'-0']));
    				$tab_liste_service[$i][1]=addslashes(utf8_decode($_POST['tab_liste_service-'.$i.'-1']));
    				$tab_liste_service[$i][2]=addslashes(utf8_decode($_POST['tab_liste_service-'.$i.'-2']));
    				$tab_liste_service[$i][3]=addslashes(utf8_decode($_POST['tab_liste_service-'.$i.'-3']));
    			}
    Voilà, le principale, c'est que ça marche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage d un tableau 2D en paramètres d une procedure
    Par CaptJack dans le forum VB 6 et antérieur
    Réponses: 25
    Dernier message: 19/04/2007, 15h16
  2. [AJAX] comment passer d'un tableau de chaine javascript à jsp
    Par youp_db dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/11/2006, 10h25
  3. [AJAX] Update automatique de champs tableau
    Par cic_flo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/10/2006, 16h59
  4. [Ajax] Prob passage de param. dans boucle [DOM]
    Par narnou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/02/2006, 16h54
  5. Passage d'un tableau javascript en paramètres d'une URL
    Par seblo_scoqi dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 02/09/2005, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo