Problème avec XMLHttpRequest

cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 - 5 nov. 2008 à 17:15
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 5 nov. 2008 à 21:29
Bonjour,

Je vous contacte car j'éprouve des difficultés à utiliser XMLHttpRequest...

En faite j'essaie d'actualiser automatiquement un
contenant seulement un bouton.

Chaque fois que je cliques sur ce bouton, j'écris dans un cookie, la valeur 0 ou 1 (dépendant de la valeur précédente de celui-ci).

 Et je remplace le contenu du
ci-dessous par celui du fichier bouton_activer.php ou bouton_desactiver.php (dépendant de la valeur du cookie).


         

On arrive donc au problème suivant : le bouton change effectivement dés que je clique dessus mais seulement la première fois.

Note : J'ai listé tous les codes vous permettant de comprendre ci-dessous

Alors si vous arrivez à voir où est ce que ça cloche car je suis à court d'idée.

Merci beaucoup...

Voici comment je procède :

function refresh_div(div)
{
    var xhr_object = null;

    if(window.XMLHttpRequest)
    { // Firefox
        xhr_object = new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    { // Internet Explorer
        xhr_object = new ActiveXObject('Microsoft.XMLHTTP');
    }

    var method = 'POST';
   
        if (GetCookie("neige_punbb") == "1")
        {
            var filename = 'bouton_desactiver.php';   
        }
        else
        {
            var filename = 'bouton_activer.php';    
        }

    xhr_object.open(method, filename, true);
    xhr_object.onreadystatechange = function()
    {
        if(xhr_object.readyState == 4)
        {
            var tmp = xhr_object.responseText;
            alert(tmp);
            document.getElementById(div).innerHTML = tmp;

        }
    }
    xhr_object.send(null);
}

<hr size="2" width="100%" />
Le bouton qui permet d'activer la chute de la neige est déclaré tel quel (dans le fichier bouton_activer.php) :



<hr size="2" width="100%" />
Le bouton qui permet de désactiver la chute de la neige est déclaré tel quel (dans le fichier bouton_desactiver.php) :



<hr size="2" width="100%" />
Les fonctions pour Ecrire et Lire un cookie :

function SetCookie(name, value, days) {
     var expire = new Date ();
     expire.setTime (expire.getTime() + (24 * 60 * 60 * 1000) * days);
     document.cookie = name + "=" + escape(value) + "; expires=" +expire.toGMTString();
}

function GetCookie(name) {
     var startIndex = document.cookie.indexOf(name);
     if (startIndex != -1) {
          var endIndex = document.cookie.indexOf(";", startIndex);          if (endIndex -1) endIndex document.cookie.length;
          return unescape(document.cookie.substring(startIndex+name.length+1, endIndex));
     }
     else {
          return null;
     }
}

<hr size="2" width="100%" />
Et enfin, la fonction ActiverDesactiver_Neige :

function ActiverDesactiver_Neige()
{
        if (GetCookie("neige_punbb" == "1"))
        {
            SetCookie("neige_punbb", "0", 30);
        }
        else
        {
            SetCookie("neige_punbb", "1", 30);
        }
    refresh_div("neige");   
}

<hr size="2" width="100%" />
<hr size="2" width="100%" />

3 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
5 nov. 2008 à 17:41
Bonjour,
Pourquoi ne pas changer simplement la
value du bouton dans la fonction ActiverDesactiver_Neige?

;O)
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
5 nov. 2008 à 17:45
Bonjour,

Je vois pas vraiment comment faire, il faut quand même utiliser la fonction refresh_div() pour changer dynamiquement la value du bouton...

++
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
5 nov. 2008 à 21:29
Bonjour,
petit exemple, parmi tant d'autre, d'une méthode
<html>
<head>

<script type="text/javascript">
//--------------------------------------

function ActiverDesactiver_Neige( this_){
 var szValue =
this_.value;
 var szSwap  = this_.alt;
 this_.value = szSwap;

 this_.alt   = szValue;
}
</script>
</head>





</html>
il faut dans ce cas passer this en paramètre la fonction, et la deuxième valeur est affectée à l'attribut


alt


par exemple ...
;O)
0
Rejoignez-nous