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] Envoi d'un tableau dynamique


Sujet :

AJAX

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 40
    Par défaut [AJAX] Envoi d'un tableau dynamique
    Ma question est d'une simplicité enfantine comment envoyer un tableau dynamique(dans le sens qu'on ne connaît jamais sa longueur et son contenu lors de sa validation) vers le fichier php qui va traiter les données du javascript.

    en gros que doit-on mettre dans les paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    params = ???;
    objet_ajax.send(params);
    //à la fin de l'Ajax

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    params="var[]=lol&var[]=lol&var[]=lol&var[]=lol&var[]=lol&var[]=lol";
    Coté php $_POST["var"] sera un tableau.

    A+.

  3. #3
    Membre émérite
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Par défaut
    Bonjour, avec jquery, cela doit fonctionner (non 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
     
    var listEmployees = {
       "employees": [
          { "firstName":"John" , "lastName":"Doe" }, 
          { "firstName":"Anna" , "lastName":"Smith" }, 
          { "firstName":"Peter" , "lastName":"Jones" }
       ]
    }
     
    $.ajax({
      type: 'POST',
      url: monUrl,
      data: listEmployees ,
      success: maFonctionSuccess  
    });

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    @dkmix
    Utiliser jQuery, rien que pour une requête AJAX est un peu abusif.

    A+.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    +1 Andry, d'autant plus qu'il faut se demander aussi ce que fait jQuery en interne pour envoyer les données... à savoir des choses comparables à ce que tu proposes (mais avec toute la lourdeur du framework derrière). Donc à moins d'avoir une raison valable de vouloir plomber les perfs, c'est pas une bonne idée !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre émérite
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Par défaut
    oui , sauf si il est utilisé dans le reste de la page ...

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    1. Ca ne changera rien aux questions de perfs.
    2. Si c'était le cas, l'envoi ne passerait pas par objet_ajax.send(params);

    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 40
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    params="var[]=lol&var[]=lol&var[]=lol&var[]=lol&var[]=lol&var[]=lol";
    Merci pour la réponse rapide mais, WAOW c'est quoi ça ?

    Je comprends pas trop.

    Je parle d'un tableau dynamique dont on ne connaît pas la longueur ni le contenu or dans l'exemple que tu donnes je peux voir 6 affectations.

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ben... pour parcourir un tableau, à priori ça se passe dans une boucle, pas besoin de connaitre la taille du tableau pour ça puisque la propriété length te la donne facilement.
    Ensuite, à la sortie de cette boucle, arrange-toi pour avoir une chaine qui correspond à la syntaxe proposée.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 40
    Par défaut
    Oui mais pourquoi il y a 6 affectations.

    Si je vais dans sa logique pourquoi pas plus et pourquoi pas moins.

  11. #11
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Ce n'est qu'une simple exemple, tu peux mettre plus ou moins que ça. C'est juste pour te donner le format de variable à envoyer. Et les valeurs "lol" viennent de la flemme du vendredi après midi (CTRL+C - CTRL+V- CTRL+V- CTRL+V- CTRL+V). Chaque variable var[] peut avoir sa propre valeur.

    A+.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 40
    Par défaut
    Alors voilà, justement comment puis-je mettre une valeur ou plusieurs vu que je ne les connais pas.

    La syntaxe que tu proposes est une syntaxe que je connais mais qui marche avec des valeurs connus dont avec un tableau statique, moi je parle avec des valeurs dynamiques (donc dont on ne connais ni le nombre, ni la valeurs). Je voudrais savoir comment envoyer toutes ses valeurs dynamiques en une fois dans ma variable

  13. #13
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Bovino
    pour parcourir un tableau, à priori ça se passe dans une boucle, pas besoin de connaitre la taille du tableau pour ça puisque la propriété length te la donne facilement.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  14. #14
    Membre émérite
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Par défaut
    J'ai un peu de temps... on peut faire, par exemple :
    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
     
    // pour le test le tableau n'existe pas...
    monTableauDynamic = new Array(50);
    for (i=0;i<50;i++)
    {
        monTableauDynamic [i] = {id:i,name:"name"+i}
    }
     
    //avec mon tableau qui maintenant existe
     var params ="";       
    for(i=0;i<monTableauDynamic.length;i++)
        {
         params+= "&tab["+i+"][id]="+monTableauDynamic[i].id+"&tab["+i+"][name]="+monTableauDynamic[i].name;
        } 
    // on remove le premier &
    params = params.substring(1)
    //on regarde le resultat
    console.log(params);
    Dans cette exemple, "monTableauDynamic" est remplit d'Object ({id:i,name:"name"+i}), il est possible d'adapter en fonction du besoin, array, string ...

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 40
    Par défaut
    J'étudie ta réponse dkmix, mais j'ai la vague impression qu'on peut faire plus simple mais je teste avec mon cas.

    Merci

  16. #16
    Membre émérite
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Par défaut
    oui avec jquery
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // pour le test le tableau n'existe pas...
    monTableauDynamic = new Array(50);
    for (i=0;i<50;i++)
    {
        monTableauDynamic [i] = {id:i,name:"name"+i}
    }
     
    $.ajax({
      type: 'POST',
      url: monUrl,
      data: monTableauDynamic ,
      success: maFonctionSuccess  
    });

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 40
    Par défaut
    Encore merci dkmix
    j'ai adapté ton code à mon cas qui est nettement moins compliqué que celui que tu as présenté et ça marche nickel mais je suis tellement mauvais que je dois me débarrasé d'une boucle infini, ça faisait longtemps

    Le coup du deuxième tableau j'avoue que je n'y avais pas pensé ...

Discussions similaires

  1. [AJAX] contenu d'un Tableau mise a jour dynamiquement GRR
    Par spax dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/10/2008, 14h19
  2. Tableau dynamique (Ajax)
    Par sliderman dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 26/05/2008, 17h56
  3. Tableau dynamique (Ajax)
    Par sliderman dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/05/2008, 22h16
  4. [Rico] Ajax - Open rico création de tableau dynamique
    Par Naruto69 dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 08/04/2008, 17h57
  5. [Tableaux] Envoi tableau dynamique
    Par acidline dans le forum Langage
    Réponses: 8
    Dernier message: 21/11/2007, 20h19

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