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

Bibliothèques & Frameworks Discussion :

Fonction Ajax.Request (débutant)


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut Fonction Ajax.Request (débutant)
    Bonjour,
    Je rencontre un petit souci pour récupérer le contenu d'une liste déroulante multiple et le traiter dans une partie PHP.

    Voici le code dans la partie HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <input type="button" style="font-weight:bold" value="Enreg liste client(s)" onclick="enregListeClients('num_cli2');"></input>
    Dans le script.js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function enregListeClients(objFrom)
       {
       var tabClient = document.getElementById(objFrom);
       /*var result = new Ajax.Request('php-js/enregListeClients.php',{method:'post',postBody:'listeClient='+tabClient,evalJS:true});*/
       var result = new Ajax.Request('php-js/enregListeClients.php',{method:'post',postBody:'listeClient='+$H(tabClient).toJSON(),evalJS:true});
       }
    Et dans le code PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    /*echo '<pre>' . print_r($_POST['listeClient'], true) . '</pre>';*/
    echo '<pre>' . print_r(json_decode($_POST['listeClient']), true) . '</pre>';
    Je ne récupère rien, ou au pire (avec la ligne en commentaire dans script.js) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <pre>[object HTMLSelectElement]</pre>
    C'est un peu confus pour moi, où se situe la ou les erreur?
    Merci d'avance pour votre aide...

  2. #2
    Expert éminent

    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
    Par défaut
    Bonjour,
    quelle est la librairie que tu utilises (en dehors de JSon) ?

    A+

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    Désolé, je l'ignore, je reprends un programme écrit par quelqu'un d'autre...

  4. #4
    Rédacteur

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 646
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par E.Bzz
    Bonjour,
    quelle est la librairie que tu utilises (en dehors de JSon) ?

    A+
    C'est Prototype

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    new Ajax.Request('php-js/enregListeClients.php',{
        method:'post',
        postBody:'listeClient='+$H(tabClient).toJSON(),
        evalJS:true
    });
    C'est bien de faire une requête Ajax, mais si tu ne fais rien à son retour, fatalement, il ne se passe rien
    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

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    Je pensais que le traitement du contenu de la liste se faisait dans la partie PHP?

  6. #6
    Rédacteur

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 646
    Billets dans le blog
    20
    Par défaut
    Oui, le script PHP effectue un traitement et renvoie le résultat que tu dois traiter ensuite avec JavaScript.
    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

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    en fait, dans le PHP, je ne récupère rien en provenance du JS.

  8. #8
    Rédacteur

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 646
    Billets dans le blog
    20
    Par défaut
    Oui, c'est un peu normal en fait... Je reste assez perplexe par rapport à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    postBody:'listeClient='+$H(tabClient).toJSON()
    essaye plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    postBody:'listeClient='+$(tabClient).serialize(true)
    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

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    Si je modifie ainsi (suivant ton conseil et en ôtant ",evalJS:true" en fin d'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var result = new Ajax.Request('php-js/enregListeClients.php',{method:'post',postBody:'listeClient='+$(tabClient).serialize(true)});
    je ne récupère toujours rien dans le PHP.

    En fait, je voudrais être sûr que dans le JS, je possède déjà le contenu de la liste, ce qui me semble moins que certain...

  10. #10
    Membre éprouvé Avatar de DiDieuh
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 111
    Par défaut
    pour en être sur, alert tes parametres tu verras rapidement ce qu'envoie ta requête. En utilisant un add on de type Firebug, tu peux effectuer un large panel de test pour trouver d'où vient ton erreur, je te le recommande

  11. #11
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    J'ai déjà installé Firebug.

    Après pas mal de bidouilles, je parviens à peu près à mes fins, mais je doute que ce soit très propre...

    dans le JS :
    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
     
    function enregListeClients(objFrom)
       {
       var tabClient = document.getElementById(objFrom);
       var toto="";
       var i;
     
    for (i=0; i<tabClient.length; i++)
       {
       toto+=tabClient[i].value;
     
       if(i+1<tabClient.length)
          toto+=",";
       }
     
    alert(toto);
       var result = new Ajax.Request('php-js/enregListeClients.php',{method:'post',postBody:'listeClient='+toto});
       }
    Le alert me donne bien ma liste sélectionnée, dont les éléments sont séparés par des virgules.

    Dans le PHP, avec un "explode", je retrouve bien mes éléments.
    Il faut peut-être que dans le JS, je gère le retour des requêtes exécutées dans le PHP, non? Comment faire?

Discussions similaires

  1. [Prototype] Ajax.Request et onSuccess : appel de fonction avec plusieurs arguments
    Par gregbond dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 18/10/2012, 17h00
  2. [Prototype] [Ajax.Request] fonction de réponse
    Par jak0 dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 02/09/2009, 16h19
  3. [Prototype] Appel fonction JavaScript dans réponse serveur via ajax.request
    Par philippe_jmh dans le forum Bibliothèques & Frameworks
    Réponses: 11
    Dernier message: 22/06/2008, 02h43
  4. [Prototype] Passage de variable sur fonction new Ajax.Request
    Par Overstone dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 31/08/2007, 11h36
  5. [AJAX] Ajax.Request et le caractère '+'
    Par jon301 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/11/2006, 21h34

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