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] objet qui ne passe pas onreadystat


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Points : 43
    Points
    43
    Par défaut [AJAX] objet qui ne passe pas onreadystat
    Bonjour,
    J'ai un petit probleme avec un code ajax:
    Ce code effectue une requete php en post, le probleme, c'est qu'il n'arrive jamais dans la condition où je test le onreadystatchange.
    Voici le code ajax:

    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
    <script type="text/javascript">
    <!--
    function change() {
    var xhr; // on déclare l'instance
    if (window.XMLHttpRequest) xhr = new XMLHttpRequest(); // Firefox, Opera, Konqueror, Safari, ...
    else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP'); // Internet Explorer
    else alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...'); // Navigateur ancien
     
    var pseudo = document.getElementById('pseudo').innerHTML;
    xhr.onreadystatechange = function(){
    if(xhr.readyState == 4 && xhr.status == 200){
    document.getElementById('temps').innerHTML = xhr.responseText;
    }
    }
    xhr.open("POST","construction.php",true);
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xhr.send("&pseudo="+pseudo);
    }
    //-->
    </script>
    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
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("jeu");
     
    $pseudo = mysql_real_escape_string(htmlspecialchars($_SESSION['pseudo']));
     
    $retour2 = mysql_query("SELECT * FROM construction WHERE pseudo = '$pseudo'")or die(mysql_error());
    $donne2 = mysql_fetch_array($retour2);
     
    $retour = mysql_query("SELECT * FROM ressource WHERE pseudo = '$pseudo'")or die(mysql_error());
    $donne = mysql_fetch_array($retour);
     
    if($donne2['temps'] > 0) {
    ?>
    <script type="text/javascript">
    <!--
    setInterval('change()', 1000);
    //-->
    </script>
    <?php
    echo '<p>Il reste <span id="temps">' . $donne2['restant'] . '</span> secondes avant la fin de la construction</p>';
    }?>
    Et la page construction.php

    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
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("jeu");
     
    $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
     
    $retour2 = mysql_query("SELECT * FROM construction WHERE pseudo = '$pseudo'")or die(mysql_error());
    $donne2 = mysql_fetch_array($retour2);
     
    if($donne2['restant'] <= 0) {
    echo '<p>Construction terminée</p>';
    mysql_query("UPDATE construction SET temps = 0, restant = 0, encours = 'rien' WHERE pseudo = '$pseudo'")or die(mysql_error());
    }
    else {
    $timestamp = $donne2['temps'];
    $new_timestamp = time();
    $temps = $new_timestamp - $timestamp;
    $new_temps = $donne2['restant'] - $temps;
    mysql_query("UPDATE construction SET restant = $new_temps WHERE pseudo = '$pseudo'")or die(mysql_error());
     
    echo $new_temps;
    }
    ?>
    Je tiens aussi qu'avant que j'ai mis ce kit graphique, le code marhait tres bien.

    Quelqu'un sait il d'ou vient le probme???

    Merci d'avance

  2. #2
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pseudo = document.getElementById('pseudo').innerHTML;
    De quel type d'élément HTML s'agit-il ? (code HTML ?)

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Points : 43
    Points
    43
    Par défaut
    oui, il s'agit d'une balise <h3>

    Merci beaucoup de m'aider

  4. #4
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Si tu n'as bien qu'un seul id='pseudo' dans ta page, vérifie que le innerHTML ne contient pas d'autres caractères "pirates" ...

    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Points : 43
    Points
    43
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span id="pseudo"><?php echo $_SESSION['pseudo']; ?></span>
    Voici la ligne ou je recupere le pseudo.
    Je reprecise que avant de mettre un kit graphique, tout marchait bien , e n'ai modifié aucun code depuis, c'est ca qui est bizzare.

    Encore merci

  6. #6
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par xokami35x Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span id="pseudo"><?php echo $_SESSION['pseudo']; ?></span>
    Et c'est ce que tu appelles une balises <h3> ?

    EDIT : si un un kit graphique plante tes traitements Ajax, c'est que le kit est pourri : il n'a aucune raison d'avoir une influence => change !

    A+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Points : 43
    Points
    43
    Par défaut
    ok merci beaucoup, je vais changer, je vous tiens au courant

    edit: vous etes sur qu'un kit graphique peut provoquer ca, parce que je vois pas trop d'ou ca peut venir, et quelle difference il y a entre le kit graphique et mon ancien design???



    En tout cas merci de votre aide

  8. #8
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.send("&pseudo="+pseudo);
    Il ne faut pas mettre de & pour le premier argument en POST

  9. #9
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par xokami35x Voir le message
    vous etes sur qu'un kit graphique peut provoquer ca,
    Normallement non, mais c'est toi qui le dit
    Je tiens aussi qu'avant que j'ai mis ce kit graphique, le code marhait tres bien.
    D'où mon conseil ...

    A+

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Points : 43
    Points
    43
    Par défaut
    aillait j'ai isolé la ligne qui bug:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pseudo = document.getElementById('pseudo').innerHTML;
    Un alert avant marche,
    mais si je veux faire alert(pseudo); juste apres
    rien ne s'affiche

    Encore merci de m'aider
    edit j'ai fait var pseudo = okami; et ca ne marche toujours pas
    Toutes les alert que je fais apres ne s'execute pas, c'est bizare quand meme...

  11. #11
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Si tu n'as bien qu'un seul id='pseudo' dans ta page,
    Visiblement, ce n'est pas le cas

    A vérifier et corriger si besoin ...

    A+

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    Points : 43
    Points
    43
    Par défaut
    J'ai changé par pseudooo, toujours rien. LEs alert apres ne marche pas.

    Encore merci merci

    edit: aillait ca marche!!!!!!!!!!
    Pour un truc con, assez dur a expliquer, juste que j'ai mis le span pseudo en debut de page, et c'est bon. Parce que sinon, vu comment la page etait structurée ca ne marchait pas.
    Merci a tous!!!!!!!!
    Encore merci à vous!!!!!

  13. #13
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par xokami35x Voir le message
    j'ai mis le span pseudo en debut de page, et c'est bon. Parce que sinon, vu comment la page etait structurée ca ne marchait pas.
    Ce n'est visiblement pas ton <span> qui était mal positionné dans ta page (heureusement que tu peux le mettre où tu veux), mais plutôt ton passage <script> : il devrait être dans la partie <head> ...

    A+

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

Discussions similaires

  1. [AJAX] Caractère + qui ne passe pas
    Par iwf-fr dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/05/2008, 14h22
  2. [AJAX] HTTPRequest qui ne passe pas
    Par Cronycs dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 23/05/2007, 14h39
  3. [method post] argument qui ne passe pas
    Par crevettes59000 dans le forum Langage
    Réponses: 3
    Dernier message: 30/12/2005, 15h11
  4. un truc qui ne passe pas sous firefox ...
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 39
    Dernier message: 08/11/2005, 15h59
  5. Requête qui ne passe pas
    Par TheBart dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/08/2005, 10h12

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