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] Compte � rebours PHP Javascript ajax


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    62
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 62
    Par d�faut [AJAX] Compte � rebours PHP Javascript ajax
    Bonjour � tous,

    J'ai un compte � rebours en php dont le code est ci-dessous :

    <?
    $nbSecondes= 360 -(mktime() % 360);
    $minutes = $nbSecondes / 60;
    $secondes = $nbSecondes % 60;
    if ($secondes<10) {
    $secondes="0".$secondes;
    }
    $compteARebours = '0' . intval($minutes) . ' : ' . $secondes;

    echo $compteARebours;
    ?>
    Pour faire d�filer le compte � rebours sans recharger la page, j'utilise un script javascript -ajax.
    Celui-ci fait d�filer le compte � rebours et affiche les r�ponses � la fin du compte � rebours sans recharger la page (c'est un jeu ou les r�ponses apparaissent au bout du compte � rebours).

    Les probl�mes : lorsque je mets des caract�res comme "0" et ":" dans la variable $compteARebours, le compte � rebours s'affiche correctement, mais que la premi�re seconde. Ensuite, il affiche NaN (Not a Number).
    Si j'enl�ve les caract�res, cela fonctionne. Dois-je donc modifier et rajouter quelque chose � la variable dans le php pour que cela fonctionne, ou dois-je modifier le javascript ci-dessous?

    Le second probl�me : lorsque je fais d�filer le compte � rebours en php, en rechargeant la page, tout va bien. Il d�file bien de 59 � 00 secondes.
    Par contre, et lorsque j'enl�ve les caract�res pour faire mes tests, pour ne pas avoir le Nan, lors du premier chargement, tout va bien, mais d�s qu'il arrive � 400 (pour 4 minutes 04:00), il passe alors � 399, au lieu de 359. Lorsque je recharge, alors les secondes sont de nouveau correctes...

    Un coup de main la-dessus?

    Le javascript :

    <script language=javascript>
    var x;

    function tempsSession()
    {
    var xhr_object = null;

    if(window.XMLHttpRequest) // Firefox
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else { // XMLHttpRequest non support� par le navigateur
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    return;
    }

    var method = "GET";
    var filename = "renvoyeTempsRestantSession.php";

    var data = null;

    xhr_object.open(method, filename, true);

    xhr_object.onreadystatechange = function() {
    if(xhr_object.readyState == 4) {
    var tmp = xhr_object.responseText;
    document.form1.tempsRestantInitial.value = tmp;
    document.form1.tempsRestant.value = tmp;
    }
    }
    xhr_object.send(data);
    }

    function Decompte() {
    //((document.form1.tempsRestant.value > 0)) ? (window.document.form1.tempsRestant.value = --valeur) : (window.clearInterval(x));
    window.document.form1.tempsRestant.value--;
    if (window.document.form1.tempsRestant.value == 0) {
    window.clearInterval(x);
    window.document.form1.submit.disabled = false;
    window.document.getElementById("reponse").style.visibility="visible";
    }

    }

    function init() {
    x = window.setInterval('Decompte()', 1000);
    }

    function initCompteur()
    {
    tempsSession();
    init();

    }


    </script>

    Merci � vous... Par 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
    window.document.form1.tempsRestant.value--;
    tu fais ici une op�ration avec un op�rateur num�rique.
    Or :
    1) un .value est de type string (au passage une synatxe plus compatible )
    =>
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.forms['form1'].elements['tempsRestant'].value = parseInt(document.forms['form1'].elements['tempsRestant'].value)--;
    2) ce n'est pas un num�rique sur lequel doit �tre faite l'op�ration, mais sur un type date (pour passer � 03:59 au lieu de 03:99)

    A+

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    62
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 62
    Par d�faut
    Tout d'abord, merci de prendre mon probl�me en consid�ration...

    Excuse mon ignorance, mais je ne sais pas quoi faire de ton bout de code...

    Et comment faire l'op�ration sur un type date...

    Merci...

  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
    Citation Envoy� par syl2042
    Excuse mon ignorance, mais je ne sais pas quoi faire de ton bout de code...
    C'�tait juste l'explication d'une des erreurs
    Et comment faire l'op�ration sur un type date...
    Tu peux t'inspirer des 2 premiers posts de cette discussion ...

    A+

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    62
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 62
    Par d�faut
    Bon, je suis d�sol�, mais je ne vois pas...

    Si tu pouvais consacrer 2 minutes � mon pb, je t'en serais reconnaissant jusqu'� la fin de mes jours

    Lorsque je modifie mon code avec le tiens, je vois bien qu'il me prend enfin les caract�res 0 et :.

    Cependant, le script ne se raffraichit plus et donc le compte � rebours est fig�.

    Voici ce que j'avais :

    function Decompte() {
    window.document.form1.tempsRestant.value--;
    if (window.document.form1.tempsRestant.value == 0) {
    window.clearInterval(x);
    window.document.form1.submit.disabled = false;
    window.document.getElementById("reponse").style.visibility="visible";
    }
    Voici ce que je fais avec ton code :

    function Decompte() {
    window.document.form1.tempsRestant.value = parseInt(document.form1.tempsRestant.value)--;
    if (window.document.form1.tempsRestant.value == 0) {
    window.clearInterval(x);
    window.document.form1.submit.disabled = false;
    window.document.getElementById("reponse").style.visibility="visible";
    }
    Quant � la discussion que tu m'as transmise, je ne vois rien qui m'orienterait...

    Si tu peux m'aider sur ce coup l�... J'suis pas loin...

  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 syl2042
    Quant � la discussion que tu m'as transmise, je ne vois rien qui m'orienterait...
    Ben ... c'est ton script de compte � rebours (dans les 2 premiers posts)
    EDIT : le 2� est plus lisible ...

    D�sol�, je n'ai pas le temps de le r�-�crire. En plus il semble bien comme �a, et il est test� ...

    A+

Discussions similaires

  1. R�ponses: 4
    Dernier message: 11/01/2011, 22h40
  2. [AJAX] 'is not defined' Javascript /Ajax
    Par RichardP dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 12/05/2007, 14h27
  3. [AJAX] Temps d'apprentissage d'AJAX avec connaissances PHP/SQL
    Par ayvong dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 29/04/2007, 10h18

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