Problème de cookie

Résolu
molko13 Messages postés 6 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 20 août 2008 - 18 août 2008 à 22:39
molko13 Messages postés 6 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 20 août 2008 - 20 août 2008 à 18:52
Bonsoir à tous,

Cela fait plusieurs jours que je me casse les dents sur la gestion d'un cookie qui serait à terme utilisé pour gérer l'affichage ou de
. J'ai essayé de voir ce que pouvait faire mon ami google, mais ca ne semble pas suffisant, j'aimerai donc si possible que quelqun m'aide à éclaircir ce mystère.

Voici le code

Merci de votre indulgence et de votre aide.

[CODE]
<script type="text/javascript">

// script pour ecrire le cookie

function SetCookie (name, value) {

    var argv=SetCookie.arguments;

    var argc=SetCookie.arguments.length;

    var expires=(argc > 2) ? argv[2] : null;

    var path=(argc > 3) ? argv[3] : null;

    var domain=(argc > 4) ? argv[4] : null;

    var secure=(argc > 5) ? argv[5] : false;

    document.cookie=name+"="+escape(value)+

        ((expires==null) ? "" : ("; expires="+expires.toGMTString()))+

        ((path==null) ? "" : ("; path="+path))+

        ((domain==null) ? "" : ("; domain="+domain))+

        ((secure==true) ? "; secure" : "");
}

// script pour lire le cookie

function getCookieVal(offset) {

    var endstr=document.cookie.indexOf (";", offset);

    if (endstr==-1)

              endstr=document.cookie.length;

    return unescape(document.cookie.substring(offset, endstr));

}

function GetCookie (name) {

    var arg=name+"=";

    var alen=arg.length;

    var clen=document.cookie.length;

    var i=0;

    while (i<clen) {

        var j=i+alen;

        if (document.cookie.substring(i, j)==arg)

                        return getCookieVal (j);

                i=document.cookie.indexOf(" ",i)+1;

                        if (i==0) break;}

    return null;

}

SetCookie("display",document.getElementById('q3').style.display;,date_exp,therealleague.com);

// script pour le expand-collapse

appear=function(id) {

var d = document.getElementById(id);

var pathname=location.pathname;

var myDomain=pathname.substring(0,pathname.lastIndexOf('/')) +'/';

var date_exp = new Date();

date_exp.setTime(date_exp.getTime()+(365*24*3600*1000));

 if (d.style.display!="none") {

d.style.display ="none";

cook=document.getElementById('q3').style.display;

alert(cook.value);

// on appelle le script et on crée le cookie avec la valeur de document.getElementById('q3').style.display

SetCookie("display",document.getElementById('q3').style.display;,date_exp,therealleague.com);

} else {

d.style.display ="inline";

cook=document.getElementById('q3').style.display;

alert(d.style.display.value);

SetCookie("display","document.getElementById('q3').style.display;",date_exp,therealleague.com);

 }

}

//interface

SetCookie("display","document.getElementById('q3').style.display;",date_exp,therealleague.com);

// on l'appelle et on lit.

display=GetCookie("display");

document.write(display);

alert(display.innerHTML);

//interface

</script>

[javascript:appear('q3') héhé]

lala

7 réponses

molko13 Messages postés 6 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 20 août 2008
20 août 2008 à 18:52
Bon et bien merci à tous car ca marche niquel.

Le code ci-dessus fonctionne parfaitement!!!
3
molko13 Messages postés 6 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 20 août 2008
18 août 2008 à 22:45
Mes
s'affichent bien lorsque je clique sur le lien. Par contre je n'arrive pas à récupérer la valeur de l'attribut style de l'élément 'q3' afin de pouvoir par la suite l'insérer dans le cookie puis le lire et ainsi afficher ou non la div en fonction du cookie.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 août 2008 à 10:29
bonjour,
si je comprend ce que tu veux faire :
réafficher la div "q3" si elle le fût précedemment ?
tu te complqiues drôelemnt les cookies !
remarques que c'est normal, tous les exemples qu'on trouve
               embreouillent à loisir
ch'tiot exemple "tout s"imple"
<!--\"#EFDCDC\"-->----

mon Site]   [M'écrire], <!--
0
molko13 Messages postés 6 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 20 août 2008
19 août 2008 à 18:42
C'est exactement ca Bultez!

Je m'y colle de suite, merci pour ton aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
molko13 Messages postés 6 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 20 août 2008
19 août 2008 à 21:08
Bon nette avancée grâce à un tuto qu'on m'a filé sur un autre site.

tout marche sauf que cette ligne semble ne pas fonctionner vu que la div s'affiche quoi qu'il arrive et même si le cookie lui dit de bien s'afficher, quelqu'un voit une erreur de syntaxe?

'q3'
style="display:GetCookie('TRL_display')">lala
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 août 2008 à 08:43
1° mais pourquoi passer par une fonction ( GetCookie ) qu'on n'a d'ailleurs pas ?
    document.cookie ça doit baigner ( comme dans mon exemple )
    ou alors la gestion du cookie est encore trop complquée et probablement inutile
2° un style fait appel à du css, pas à du javascript.
    il faut faire <script> document.getElementById("q3").style.display=document.cookie; </script>
Cordialement         Bul    [mon Site]  [M'écrire], <!--
0
molko13 Messages postés 6 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 20 août 2008
20 août 2008 à 18:08
Merci de ta réponse!

1° je te copie/colle mon code ci-dessous. Tu verras que grâce à un tuto j'ai épuré tout ca et je pense que c'est assez cohérent. Je me sers de la fonction GetCookie pour récupérer une partie du cookie qui contient deja d'autres données.

2° Pas con! je ne le savais pas. J'ai bien cru que ca expliquait mon problème mais ca ne marche toujours pas :/

"javascript:void(affiche('q3'));">héhé

'q3'
style="display:none">lala

<script>
// fonction qui crée le 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();
}
//fonction qui lit le cookie
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{
returnnull;
}
}
function affiche(id){
 
if(document.getElementById(id).style.display != "none"){
document.getElementById(id).style.display= "none";
SetCookie('TRL_display','none','365');
}else{
document.getElementById(id).style.display= "inline";
SetCookie('TRL_display','inline','365');
}
 
}
//alert(GetCookie('TRL_display'));
document.getElementById("q3").style.display=GetCookie('TRL_display');
;
</script>
0
Rejoignez-nous