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

Vue hybride

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    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

    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,
    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 confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Merci beaucoup de m'aider

  4. #4
    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
    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 confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    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

    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
    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
    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
    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+

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 213
    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!!!!!

+ 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