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

jQuery Discussion :

Envoyer plusieurs variables en ajax


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 115
    Par défaut Envoyer plusieurs variables en ajax
    bonjoir,
    Mon objectif est donc d'envoyer plusieurs variables à un script php, hors , pour l'instant , je n'arrive que à envoyer une seul variable à la fois.
    Par ou commencer?
    J'ai par exemple essayé d'envoyer un tableau , sans succès:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var transmettre["zetest"] ="truc2";
    $.post("ajaxformulaire.php",
       { maj: transmettre //dans transmettre se trouve mon tableau }
    );
    Si vous pouviez , ne serais ce que me donner une piste par ou commencer , ca serait sympa de votre part.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ajax ne sait transmettre que du string...
    si tu dois envoyer un tableau il faut le serializer sous forme de string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    { maj: {clef1:valeur1,clef2:valeur2 ...}}
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Bonjour,

    Le second paramètre de la fonction $.post est un Objet...

    Tu peux passer ton tableau dans la mesure ou c'est un Objet directement en paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $.post("monUrl.php", transmettre, function(data){alert(data)});
    Dans le PHP tu récupère ton Objet sous la forme $_POST, pour tester tu mets dans ton php :

    ton alert(data) te renverra bien le tableau passé en paramètre du $.post

    Si tu utilises firebug je te conseille plutôt : console.log(data)
    que : alert(data);

    Bonne journée

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Attention à l'abus de langage
    Tu peux passer ton tableau dans la mesure ou c'est un Objet directement en paramètre :
    Ajax ne sait faire transiter que du STRING...

    "l'objet " ne transite pas, il est convertit en string à l'envoi puis reconverti en objet à l'arrivée ..
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 115
    Par défaut
    "l'objet " ne transite pas, il est convertit en string à l'envoi puis reconverti en objet à l'arrivée ..
    dans ce cas la, dois je moi même le sérialisé? d'après ce que j'ai lu dans la doc jquery , ca a l'air de se faire automatiquement .
    Autrement , ca risque de s'avérer complexe, puisque la doc jquery indique que serialize :
    Sérialise un conteneur d'éléments de type input en une chaine de caractères.;
    hors, je n'ai dans mon objet/tableau que des chaines que j'aurais sélectionné précédemment (notamment dans des inputs):
    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
    $("#submit").click(function(){
    var transmettre = new Array(); 
    $("input:text,textarea").each(function()
    {
    if ($(this).val() != $(this).attr("commentaire"))
    {
    transmettre[$(this).attr('name')]=$(this).val();  
    }
    else
    {
    transmettre[$(this).attr('name')]= '';  
    }
    })
    $.post("ajaxformulaire.php",
       { maj: transmettre }
    );
    })
    est ce que je peux faire avant de l'envoyer?:
    transmettre= transmettre.serialize()

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    http://api.jquery.com/jQuery.post/

    le second paramètre attendu par la fonction post de jquery est un objet
    je dis juste que ajax (utilisé par la focntion jquery post) ne sait rien envoyer ni recevoir d'autre que du string
    cote js c'est donc la fonction post qui s'occupe de convertir ton objet en un string qui sera évalué coté serveur
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/02/2012, 15h24
  2. [AJAX] Envoyer plusieurs variable de PHP vers JS?
    Par nestoyeur dans le forum AJAX
    Réponses: 2
    Dernier message: 21/07/2009, 14h55
  3. Envoyer plusieurs variables dans le open
    Par Eva01 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/05/2009, 12h18
  4. Envoyer plusieur variable a un programme
    Par scaleo dans le forum Langage
    Réponses: 9
    Dernier message: 06/09/2005, 11h09
  5. envoyer plusieurs variables dans l'url?
    Par brgui dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h18

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