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

AJAX Discussion :

[AJAX] passer un tableau dans xhr.send() ?


Sujet :

AJAX

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut [AJAX] passer un tableau dans xhr.send() ?
    Bonjour tout le monde,

    J'aimerais passer un tableau comme je passe des donnés String :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.send("filiere_choisie="+filiere_choisie+"&matricule="+matricule);
    Je présume que ce n'est pas possible ?

    En sachant que je ne sais pas à l'avance ce qui va être posté au code PHP, avezv-vous une astuce pour passer les données de mon tableau ?

    Merci d'avance.

    beegees

  2. #2
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Tu sérialises ton tableau pour avoir un affichage sous forme de paires clé/valeur.

    Si c'est un tableau indexé, les noms des paramètres sont les clés, si c'est un tableau plat, le nom du paramètre sera par exemple "paramName[]".
    ex: ?paramName[]=foo&paramName[]=bar&...

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par DoubleU Voir le message
    Tu sérialises ton tableau pour avoir un affichage sous forme de paires clé/valeur.

    Si c'est un tableau indexé, les noms des paramètres sont les clés, si c'est un tableau plat, le nom du paramètre sera par exemple "paramName[]".
    ex: ?paramName[]=foo&paramName[]=bar&...
    Bonjour,

    Un tout grand merci pour ta réponse.

    Mon tableau s'appelle tableau_cours

    Il contient des entiers du genre 54,56...

    Je dois donc passer ce genre de tableau :

    tableau_cours[54,78,56,63]

    Merci encore pour ton aide.

    beegees

  4. #4
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    Regarde du coté du JSON.

    Voici un exemple.

    les sections entre "[" "]" sont des tableaux.

    Je sais qu'il est possible de faire un UP vers un script serveur avec du JSON. Je n'ai jamais testé.


    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    {"jourj": {
    					"id": "108",
    					"nom_chaine": "DBCKTRI",
    					"job_erreur": "0",
    					"job":[
     
    						],
    					"nbDeplan": "",
    					"deplan":[
     
    						],
    					"NdebJ": "OK"},
    				"jourjH": {
    					"id": "108",
    					"nom_chaine": "DBCKTRI",
    					"NfinJ": "OK",
    					"job_erreur": "5",
    					"job":[
    						{"nomJob": "NTRIIATAPP2", "etat": "ctm_Running"},{"nomJob": "NTRIIATAPP1", "etat": "ctm_Running"
    },{"nomJob": "NTRIIATAPP2", "etat": "ctm_Running"},{"nomJob": "NTRIIATAPP1", "etat": "ctm_Running"},
    {"nomJob": "NTRISMSMECA", "etat": "ctm_Ko"}
    						]			
    					}
    				}

  5. #5
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    url.php?tableau_cours[]=56&tableau_cours[]=78&tableau_cours[]=57
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableauCours = $_GET["tableau_cours"];// [56,78,57]

  6. #6
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par DoubleU Voir le message
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    url.php?tableau_cours[]=56&tableau_cours[]=78&tableau_cours[]=57
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableauCours = $_GET["tableau_cours"];// [56,78,57]
    Merci beaucoup pour ta réponse.

    Etant donné que je ne sais pas à l'avance quel cours va être choisis, est-il possible de remplacer 56,78,57 et peut être les autres numéros (car il peut en avoir de 1 à 12) par des variables ?

    On ne sait donc pas combien et quels cours vont être choisis.

    Merci encore pour ton aide.

    beegees

  7. #7
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Il te suffit de construire dynamiquement ton url, en bouclant sur ton tableau qui contient les valeurs pour les concaténer à la chaine...

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par beegees Voir le message
    Etant donné que je ne sais pas à l'avance quel cours va être choisis, est-il possible de remplacer 56,78,57 et peut être les autres numéros (car il peut en avoir de 1 à 12) par des variables ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ton url = "url.php?tableau_cours[]="+var1+"&tableau_cours[]="+var2+"&tableau_cours[]="+var3 ......
    A+

  9. #9
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut,

    Merci pour vos réponses.

    J'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var i = 1;
    	//je construis le xhr.send.  Je concatene les valeurs du tableau afin de ne pas devoir envoyer le tableau et chipoter avec explode
    	var tosend = "\"matricule=\"+matricule";
    	for(i;i<compteur;i++)
    	{
    		//si la checkbox est checké, je mets sa valeur dans le tableau
    		if(document.getElementById('cb_'+i).checked == 1)
    		{
    			//tableau_cours[i]=document.getElementById("cb_"+i).value;
    			//je crée une chaine qui contient les numéros de cours a envoyer a PHP (AJAX) 
    			tosend = tosend+"+\"&cours_"+document.getElementById('cb_'+i).value+"=\""+document.getElementById('cb_'+i).value;
    		}
    	}
    et ceci :

    Quand je coche deux checkboxes, j'obtiens ceci (tosend) :

    "matricule="+matricule+"&cours_74="74+"&cours_68="68
    Je pense donc que mes paramètres sont bien passés à PHP.

    Mais comment récupérer ces paramètres ?

    Que pensez-vous de ma méthode ?

    Merci encore pour l'aide et bonne soirée.

    beegees

  10. #10
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ton url = "url.php?tableau_cours[]="+var1+"&tableau_cours[]="+var2+"&tableau_cours[]="+var3 ......
    A+
    Merci pour ta réponse mais je ne sais pas non plus combien de cours vont être choisis.

    beegees

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par beegees Voir le message
    Merci pour ta réponse mais je ne sais pas non plus combien de cours vont être choisis.
    Et bien tu les stockes dans un Array() (au lieu de var1, var2 etc), et tu n'as qu'à boucler sur les éléments du tableau pour constituer ton url ...

    A+

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

Discussions similaires

  1. Passer un tableau dans un lien
    Par Giantrick dans le forum Langage
    Réponses: 9
    Dernier message: 18/05/2009, 01h32
  2. [AJAX] Recharger un tableau dans une page à partir d'une thickbox
    Par benthebest dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/10/2008, 11h24
  3. Réponses: 7
    Dernier message: 02/09/2008, 17h16
  4. Réponses: 1
    Dernier message: 28/12/2006, 17h02
  5. [Tableaux] Passer un tableau dans une requête HTTP ??
    Par haffouff dans le forum Langage
    Réponses: 2
    Dernier message: 09/05/2006, 17h17

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