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] XMLHttpRequest : exécution du script


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Points : 3
    Points
    3
    Par défaut [AJAX] XMLHttpRequest : exécution du script
    Bonjour à tous, j'ai un petit soucis avec mon code JS ainsi qu'avec le html pour envoyer cette requête. Je souhaite faire un système de vote simple où les visiteurs cliquent sur "j'adore" s'ils ont aimés ou sur "naze" s'ils n'ont pas aimés.
    J'ai testé le scipt php pour mettre tout ça dans la base de donnée, ça marche niquel donc le soucis ne vient pas de là.

    Donc voilà mon code avec xmlhttprequest :

    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
    function vote(vote, id) {
    	var xhr = getXMLHttpRequest();
     
            if (xhr && xhr.readyState != 0) {
     
    				document.location.href='vote.php?vote'+vote+'&id='+id;
     
     
            }
     
             xhr.onreadystatechange = function() { 
                    if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
     
    						document.getElementById('valider_vote_'+id).innerHTML = "Votre vote a été pris en compte, merci"; 
     
     
                    } else if(xhr.readyState == 2 || xhr.readyState == 3) {
                            document.getElementById("valider_vote_"+id).innerHTML = "<img src=\"chargement.gif\" alt=\"Chargement\"/>";
                    }
            }
     
     
            xhr.open("GET", "vote.php?vote=" + vote + "&id=" + id + "", true);
            xhr.send(null);
     
    }
    (à noter que j'ai bien créé la fonction getXMLHttpRequest() mais je l'ai pas posté pour pas encombrer)

    Et voici le lien qui fait sur lequel doit cliquer le visiteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="vote.php?vote=adore&id=<?php echo $donnees['id'];?>" onClick="vote('adore', '<?php echo $donnees['id'];?>');return false;">J'adore</a>
    (c'est le même pour naze sauf que là y a la variable vote qui change.
    Est-ce que vous pourriez m'aider ? C'est mon tout premier script, je me lance
    Merci beaucoup

  2. #2
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Que se passe-t-il exactement?

    Tu pourrais nous donner le code de ton getXMLHttpRequest? Tu fais l'appel AJAX de la page dedans?

    Sinon,ce code,tel que tu l'as écrit,ne pourra jamais finir la requête AJAX étant donné qu'il redirige l'utilisateur sur la page PHP...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (xhr && xhr.readyState != 0) {
     
    	document.location.href='vote.php?vote'+vote+'&id='+id;
     }

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Salut, merci pour la réponse rapide
    Oui, en effet, grosse erreur...

    Pour la fonction, voici le 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
    function getXMLHttpRequest() {
            var xhr = null;
     
            if(window.XMLHttpRequest || window.ActiveXObject) {
                    if(window.ActiveXObject) {
                            try {
                                    xhr = new ActiveXObject("Msxml2.XMLHTTP");
                            } catch(e) {
                                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                            }
                    } else {
                            xhr = new XMLHttpRequest();
                    }
            } else {
                    alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
                    return null;
            }
     
            return xhr;
    }
    Et en fait quand je clique sur le lien, ça m'envoie vers la page vote.php. Donc du coup, je ne sais pas quoi mettre dans le href parce que j'avais mis href="#" mais ça marchait pas. Et ensuite, j'ai essayé de mettre un bouton, pour tester le code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" onclick="vote('adore', '<?php echo $donnees['id'];?>');" value="Envoyer" />
    mais ça ne faisait rien...

    ps : j'ai réessayé en enlevant le document.location.href mais ça ne change rien.

    Merci

    [edit]je viens de mettre un lien comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:vote('naze', '<?php echo $donnees['id'];?>');" >Cliquez moi</a>
    , ce qui, ils me semble, devrait appeler la fonction vote non ? ça ne marche pas

  4. #4
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:vote('naze', '<?php echo $donnees['id'];?>');" >Cliquez moi</a>
    Selon moi, <?php echo $donnees['id'];?> risque de ne pas être considéré comme du code php mais plutôt comme la valeur du 2e argument de ta fonction...
    Essaye avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:vote('naze', <?php echo '\''.$donnees['id']'\'';?>);" >Cliquez moi</a>

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Ce doit être le deuxième argument de ma fonction
    Mais en fait, c'est bon, le script marche bien, je m'étais juste trompé dans le document.location.href et pour appeler le fichier javascript Comme quoi parfois faut pas chercher loin.

    Merci à tous pour vos conseils et votre aide.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/08/2016, 13h19
  2. Non exécution du script js dans page inclue via ajax
    Par clara1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/05/2008, 11h10
  3. [AJAX] append : exécuter script et style
    Par Defkarz dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 18/01/2008, 17h21
  4. [AJAX] Exécution de scripts dans la réponse d'un XHR
    Par moomarama dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/07/2007, 14h56
  5. [AJAX] XMLHTTPRequest => impossible d'exécuter tout script php
    Par AzertyH dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 24/11/2006, 19h01

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