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

AJAX Discussion :

[AJAX] Ma variable disparaît lors de l'appel de ma fonction via setintervale


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Points : 17
    Points
    17
    Par défaut [AJAX] Ma variable disparaît lors de l'appel de ma fonction via setintervale
    Bonjour,

    Je travaille sur un site de campagne emailing. Chaque campagne dispose d'un bouton play / pause. Quand je clique sur le bouton play, un script php (campagne_lancer.php) est appelé.
    Je souhaite mettre un système de décompte d’envoi de mail : reste 10 mails sur 10 , reste 9 mails sur 10, reste 8 mails sur 10...
    Pour rafraîchir le résultat, j'ai créé la fonction rafraichir que je vais appeler via la fonction setinterval !

    Le problème est : lors de la première boucle du setinterval, ma variable idr est définie (par exemple idr : 6) mais lors de la deuxième boucle, elle devient indéfinie.

    idr est définie lors du clic sur le bouton play. Donc comme je clique plus sur le bouton, idr devient indéfinie et mon décompte ne s’affiche plus...

    Auriez vous une idée pour que ma variable idr ne disparaisse plus ?

    Je suis débutant dans le domaine et je ne sais pas si j'ai été très clair.

    Merci votre aide.

    Voici mon code javascript :

    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
     function lancer(idCam,idr){
    //
           // console.log("lid de la campagne est : " + idCam);
            setInterval("rafraichir(idr)", 100);
            var url = 'campagne_lancer.php?id_camp='+idCam;
            xhr_object.open("GET",url, true);
            xhr_object.send(null);
            //filtre();
    }   
    function rafraichir(idr){
             if (window.XMLHttpRequest)
                xhr_object = new XMLHttpRequest();
             else if (window.ActiveXObject)
                xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
                console.log("lidr du rafraichir est : " + idr);
                    var url = 'reste.php?idr=' + idr;
                    xhr_object.open("GET", url, false);
                    xhr_object.send(null);
                    $("#reste_"+idr).html(xhr_object.responseText);
                    //document.getElementById('reste_' + idr).html(xhr_object.responseText);
    }
    var isClicked ="false";
    function change(x,id,id2,idr){
        if(isClicked == "false"){
                x.src="campagne_stopper.png";
                document.getElementById('gif_' + id2).innerHTML = 'En cours d\'envoi <img src="barre.gif" height="5" width="30">';
                isClicked = "true";
                lancer(id,idr);
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <img src="campagne_lancer.png" onclick="change(this,<?php echo($resultat['id']); ?>,<?php echo($resultat['id']); ?>,<?php echo($resultat['id']); ?>)" style="cursor:pointer" width="55" ">
    <span style="font-size:11px"><span id="reste_<?php echo($resultat['id']); ?>" class="reste_<?php echo($resultat['id']); ?>">Reste <?php echo $cnt8 ?> sur <?php echo($aff3['nb_emails']); ?></span></span></td>
    <input type="enable" id="idri_<?php echo($resultat['id']); ?>" value="<?php echo($resultat['id']); ?>">

    Mon code reste.php :


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    if(isset($_GET['idr'])){
     $db = mysqli_connect('localhost', 'root', '', 'test') or die(mysql_error());
       $idr = $_GET['idr'];
    $nbr6 = 'copy'.$idr;
    //echo $nbr6;
    $sql8 = " select * from ".$nbr6." ";
    $req8 = mysqli_query($db,$sql8) or die ("ERROR SQL 8" .mysql_error());
    $aff8 = mysqli_fetch_assoc($req8);
    $cnt8 = mysqli_num_rows($req8);
    echo "Reste ".$cnt8."  sur 30 "; 
    //} 
    }                                          
    ?>

  2. #2
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Points : 17
    Points
    17
    Par défaut Solution
    Pour ceux que ça intéresse : mon problème était des guillemets !!!!!!

    Voici la réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     function lancer(idCam,idr){
    //
           // console.log("lid de la campagne est : " + idCam);
            setInterval("rafraichir("+idr+")", 100);
            var url = 'campagne_lancer.php?id_camp='+idCam;
            xhr_object.open("GET",url, true);
            xhr_object.send(null);
            //filtre();
    }
    Voila, c'était tout bête !!! Mais impossible de trouver tout seul alors un grand merci à michounours !

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

Discussions similaires

  1. Utilisation d'une variable lors de l'appel de la fonction
    Par guy16 dans le forum Général Python
    Réponses: 18
    Dernier message: 12/05/2015, 15h47
  2. Réponses: 7
    Dernier message: 03/02/2012, 17h15
  3. Réponses: 3
    Dernier message: 02/08/2008, 21h36
  4. Réponses: 2
    Dernier message: 09/01/2006, 09h38
  5. Réponses: 5
    Dernier message: 06/01/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