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 et PHP - Récupérer plusieurs champs ?


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 8
    Points
    8
    Par défaut [AJAX] Ajax et PHP - Récupérer plusieurs champs ?
    Bonjour.

    Etant débutant en Ajax, je me suis basé sur du code d'un tutoriel pour modifier une de mes pages.
    Mon objectif est de réactualiser une dizaine de champs (cellules d'un tableau) toutes les X secondes. Pour la partie "timeout", je verrais plus tard, pour l'instant, je simule avec du "onclick".

    Je récupère les valeurs de mes champs à actualiser par du requetage mysql avec PHP. Mon code ci-dessous ne me permet que de gérer un seul champ par la biais d'"updatepage". Je pensais à priori modifier ma fonction updatepage() pour y mettre 10 arguments correspondants aux 10 champs que j'ai à mettre à jour.
    -> Comment gérer ces 10 valeurs différentes (a la place du responseText - ou utilisé différemment)?
    -> Dois-je essayer de lancer ma fonction de requetage PHP avec javascript et récuperer les valeurs des variables PHP (possible ???) ?
    -> Puis-je/dois-je lancer 10 fois un open sur mon objet avec à chaque fois une page différente qui me donnera un champ différent (en segmentant mon requetage) ?

    Voici mon code :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    function xmlhttpPost(strURL) {
        var xmlHttpReq = false;
        var self = this;
        var self2 = this;
        // Mozilla/Safari
        if (window.XMLHttpRequest) {
            self.xmlHttpReq = new XMLHttpRequest();
        }
        // IE
        else if (window.ActiveXObject) {
            self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
        }
        self.xmlHttpReq.open('POST', strURL, true);
        self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        self.xmlHttpReq.onreadystatechange = function() {
            if (self.xmlHttpReq.readyState == 4) {
                updatepage(self.xmlHttpReq.responseText);
            }
        }
        self.xmlHttpReq.send(getquerystring());
    }
     
     
    function getquerystring() {
        var form = document.forms['mailerform'];
            qstr = 'message' ;
        // Remarque: pas de '?' avant la chaîne de requête
        return qstr;
    }
     
    function updatepage(str){
        document.getElementById("locloc").innerHTML = str;
    }

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par stephnane Voir le message
    -> Comment gérer ces 10 valeurs différentes (a la place du responseText - ou utilisé différemment)?
    • Utilises le responseText en utilisant ce que tu veux comme séparateur : fait un split de la chaine et voila tes 10 champs
    • Utilises le responseTest pour passer directement ta tr (avec tous les td) colle ça en innerHTML
    • Utilise un standard pour le transfert de données (JSON ou XML) : C,est un peu plus dur à mettre en place, mais C,est plus ré-utilisable. Tout dépends si tu en aura encore besoin....

    Citation Envoyé par stephnane Voir le message
    -> Dois-je essayer de lancer ma fonction de requetage PHP avec javascript et récuperer les valeurs des variables PHP (possible ???) ?
    Oui, cf ci-dessus
    Citation Envoyé par stephnane Voir le message
    -> Puis-je/dois-je lancer 10 fois un open sur mon objet avec à chaque fois une page différente qui me donnera un champ différent (en segmentant mon requetage) ?
    Ca dépends. Si les champs sont conceptuellement liés (des attributs d'un même objet, ou quelque chose comme ça) : 1 seule requete pour les 10.
    Si tous tes champs sont hétéroclites (la temperature d'après Yahoo, le prix de l'action francetelecom et le nombre de messages sur DVP) : 10 requetes.

    Pour les solutions intermédiaires, a toi de voir. 10 requetes, c'est beaucoup. Si a priori, il n'y aucune information qui prends du temps à avoir, personnellement, j'essayerais 1 seule requete.

Discussions similaires

  1. Récupérer plusieurs champs dans une boucle
    Par poustiquette dans le forum Langage
    Réponses: 3
    Dernier message: 16/04/2010, 09h17
  2. [MySQL] [Booleen] Récupérer plusieurs champs de type BIT(1) d'une table MySQL
    Par Longrais dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/05/2009, 22h30
  3. [DEBUTANT]Récupérer plusieurs champs dans une procédure stockée
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 20/06/2007, 17h58
  4. Réponses: 16
    Dernier message: 19/07/2006, 00h16
  5. [AJAX] Plusieurs champs màj en fonction d'un seul...
    Par Davboc dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 15/02/2006, 11h41

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