uitklapbaar menu zoals categorieen.

Installatie lukt niet? Plotseling een foutmelding. Of weet je niet hoe iets werkt. Problemen met phpBB2 kun je in dit archief opzoeken.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 30 jul 2005, 22:12

Ja, je kunt het ook in een sessie stoppen, misschien nog wel slimmer.
Maar van sessies heb ik nog niet (genoeg) kaas van gegeten om het met zekerheid te zeggen.

Gebruikersavatar
Montana
Berichten: 222
Lid geworden op: 19 jul 2004, 17:09
Locatie: Hellevoetsluis
Contacteer:

Bericht door Montana » 30 jul 2005, 22:43

is het mischien mogelijk om in deze code iets te hebben om onderscheid te maken tussen pagina`s dus bv
als je op chat.php bent er info en regels over de chat komt
en index.php info en regels over het forum komt etc etc
bv iets als
if(pagina == chat.php){
regels en info over chat
} elseif(pagina == index.php) {
info en regels over het forum
}
etc etc

tnx :bier:

Muiter
Berichten: 823
Lid geworden op: 05 sep 2003, 19:34
Contacteer:

Bericht door Muiter » 30 jul 2005, 23:34

Stef schreef:Ja, je kunt het ook in een sessie stoppen, misschien nog wel slimmer.
Maar van sessies heb ik nog niet (genoeg) kaas van gegeten om het met zekerheid te zeggen.
Volgens mij moet het geen probleem zijn, in ieder geval de moeite om het te proberen.
Het eerste probleem, hoe verwerk ik dat in het script? Daarna is het terugwerken.
Uit welke mod zou ik die stappen kunnen herleiden?

EDIT:
Ik krijg net deze code via tweakers.net, is die code te vertrouwen?
(je weet maar nooit)

Code: Selecteer alles

function GetCookie(sName)
{
    var aCookie = document.cookie.split('; '), i = aCookie.length, aCrumb;
    while (i--)
    {
         aCrumb = aCookie[i].split('=');
        if (sName == aCrumb[0])
            return typeof aCrumb[1] != 'undefined'? unescape(aCrumb[1]) : null;
    }

    return null;
}

function SetCookie(sName, sValue)
{
    document.cookie = sName + '=' + escape(sValue) + '; expires=Fri, 31 Dec 2099 23:59:59 GMT; path=/';
}
En hoe moet ik deze code dan verwerken in het script?
(Dit tot het werken met sessies lukt)
Hoi! Ik ben een onderschrift virus, kopieer/plak mij in jouw onderschrift om mij te verspreiden!

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 31 jul 2005, 09:28

Sessie's zijn php, niet javascript!
Wat je daar hebt gehad, is js. En naar wat ik zo zie, een goede code.
Met de functie setCookie, zet je een cookie, met getCookie, vraag je hem op. Voorbeeld van iets verbergen weergeven:

Code: Selecteer alles

<script language="javascript">
var geef = getCookie('weer');
if(geef == 1){
document.getElementById('weer').style.display = 'block';
}else{
document.getElementById('weer').style.display = 'none';
}
function change(value){
if(value == 1){
document.getElementById('weer').style.display = 'block';
}else{
document.getElementById('weer').style.display = 'none';
}
setCookie('weer',value);
}
</script>
<div id="weer">WEERGEEF</div>
<a href="javascript:change(0);>Verberg</a> || <a href="javascript:change(1);>Weergeef</a>
Er is een div, die je kan verbergen, of weergeven, afhankelijk van de cookie. Wanneer je op verberg, of weergeef drukt, veranderd de cookie.[/list]

Muiter
Berichten: 823
Lid geworden op: 05 sep 2003, 19:34
Contacteer:

Bericht door Muiter » 31 jul 2005, 10:41

Dit heb ik er van gemaakt:

Code: Selecteer alles

<script language="javascript"> 
var geef = getCookie('weer'); 
if(geef == 1){ 
document.getElementById('weer').style.display = ''; 
}else{ 
document.getElementById('weer').style.display = 'none'; 
} 
function change(value){ 
if(value == 1){ 
document.getElementById('weer').style.display = ''; 
}else{ 
document.getElementById('weer').style.display = 'none'; 
} 
setCookie('menu',value); 
} 
</script> 
<div id="menu">Hier staat mijn hele menu</div> 
<a href="javascript:change(0);>Verberg</a> || <a href="javascript:change(1);>Weergeef</a> 
Nu staat er alleen 'weergeef' en kan ik het menu niet wegklikken.

Ook met:

Code: Selecteer alles

<script language="javascript"> 
var geef = getCookie('weer'); 
if(geef == 1){ 
document.getElementById('weer').style.display = 'menu'; 
}else{ 
document.getElementById('weer').style.display = 'none'; 
} 
function change(value){ 
if(value == 1){ 
document.getElementById('weer').style.display = 'menu'; 
}else{ 
document.getElementById('weer').style.display = 'none'; 
} 
setCookie('menu',value); 
} 
</script> 
<div id="menu">Hier staat mijn hele menu</div> 
<a href="javascript:change(0);>Verberg</a> || <a href="javascript:change(1);>Weergeef</a> 
Hoi! Ik ben een onderschrift virus, kopieer/plak mij in jouw onderschrift om mij te verspreiden!

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 31 jul 2005, 10:43

Je moet als value voor display geen menu, of niks gebruiken, dan geeft het of een fout, of verbergt het. (block gebruik ik zelf, maar er zijn er nog weer.). Waarom hij geen verberg geeft, snap ik niet, die staat gewoon buiten de div :?

Muiter
Berichten: 823
Lid geworden op: 05 sep 2003, 19:34
Contacteer:

Bericht door Muiter » 31 jul 2005, 10:46

Code: Selecteer alles

<script language="javascript"> 
var geef = getCookie('weer'); 
if(geef == 1){ 
document.getElementById('weer').style.display = 'block'; 
}else{ 
document.getElementById('weer').style.display = 'none'; 
} 
function change(value){ 
if(value == 1){ 
document.getElementById('weer').style.display = 'block'; 
}else{ 
document.getElementById('weer').style.display = 'none'; 
} 
setCookie('menu',value); 
} 
</script> 
<div id="menu">Hier staat mijn hele menu</div> 
<a href="javascript:change(0);>Verberg</a> || <a href="javascript:change(1);>Weergeef</a> 
Dit staat er nu, kijk maar live wat hij doet: http://www.modelautoforum.nl
Hoi! Ik ben een onderschrift virus, kopieer/plak mij in jouw onderschrift om mij te verspreiden!

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 31 jul 2005, 10:49

Ik zie het al, een foutje in mijn code :oops: Verander

Code: Selecteer alles

<a href="javascript:change(0);>Verberg</a> || <a href="javascript:change(1);>Weergeef</a>
in

Code: Selecteer alles

<a href="javascript:change(0);">Verberg</a> || <a href="javascript:change(1);">Weergeef</a>

Muiter
Berichten: 823
Lid geworden op: 05 sep 2003, 19:34
Contacteer:

Bericht door Muiter » 31 jul 2005, 10:51

paulus schreef:Ik zie het al, een foutje in mijn code :oops:
Dat werkt ook niet zoals het zou moeten, kijk maar.
Hoi! Ik ben een onderschrift virus, kopieer/plak mij in jouw onderschrift om mij te verspreiden!

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 31 jul 2005, 10:55

verander het script eens in:

Code: Selecteer alles

<script language="javascript">
var geef = getCookie('weer');
if(geef == 1){
document.getElementById('menu').style.display = 'block';
}else{
document.getElementById('menu').style.display = 'none';
}
function change(value){
if(value == 1){
document.getElementById('menu').style.display = 'block';
}else{
document.getElementById('menu').style.display = 'none';
}
setCookie('menu',value);
}
</script>

Muiter
Berichten: 823
Lid geworden op: 05 sep 2003, 19:34
Contacteer:

Bericht door Muiter » 31 jul 2005, 10:58

paulus schreef:verander het script eens in:
Weer een stapje verder, 'verberg' en 'weergeef' werken maar de stand word niet onthouden als ik op verberg klik.
Hoi! Ik ben een onderschrift virus, kopieer/plak mij in jouw onderschrift om mij te verspreiden!

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 31 jul 2005, 11:01

Je moet die 2 cookie functies ook even in het script deel zetten, die heeft hij nodig :)

Muiter
Berichten: 823
Lid geworden op: 05 sep 2003, 19:34
Contacteer:

Bericht door Muiter » 31 jul 2005, 11:04

paulus schreef:Je moet die 2 cookie functies ook even in het script deel zetten, die heeft hij nodig :)
Welke zijn dat en klopt het wel dat er 2x instaat?

Code: Selecteer alles

if(geef == 1){ 
Hoi! Ik ben een onderschrift virus, kopieer/plak mij in jouw onderschrift om mij te verspreiden!

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 31 jul 2005, 11:11

Dat klopt ja :)
Deze code:

Code: Selecteer alles

function GetCookie(sName)
{
    var aCookie = document.cookie.split('; '), i = aCookie.length, aCrumb;
    while (i--)
    {
         aCrumb = aCookie[i].split('=');
        if (sName == aCrumb[0])
            return typeof aCrumb[1] != 'undefined'? unescape(aCrumb[1]) : null;
    }

    return null;
}

function SetCookie(sName, sValue)
{
    document.cookie = sName + '=' + escape(sValue) + '; expires=Fri, 31 Dec 2099 23:59:59 GMT; path=/';
}

Muiter
Berichten: 823
Lid geworden op: 05 sep 2003, 19:34
Contacteer:

Bericht door Muiter » 31 jul 2005, 11:16

Hetzelfde resultaat met deze code:

Code: Selecteer alles

<script language="javascript"> 
function GetCookie(sName) 
{ 
    var aCookie = document.cookie.split('; '), i = aCookie.length, aCrumb; 
    while (i--) 
    { 
         aCrumb = aCookie[i].split('='); 
        if (sName == aCrumb[0]) 
            return typeof aCrumb[1] != 'undefined'? unescape(aCrumb[1]) : null; 
    } 

    return null; 
} 

function SetCookie(sName, sValue) 
{ 
    document.cookie = sName + '=' + escape(sValue) + '; expires=Fri, 31 Dec 2099 23:59:59 GMT; path=/'; 
}
var geef = getCookie('weer'); 
if(geef == 1){ 
document.getElementById('menu').style.display = 'block'; 
}else{ 
document.getElementById('menu').style.display = 'none'; 
} 
function change(value){ 
if(value == 1){ 
document.getElementById('menu').style.display = 'block'; 
}else{ 
document.getElementById('menu').style.display = 'none'; 
} 
setCookie('menu',value); 
} 
</script>
Hoi! Ik ben een onderschrift virus, kopieer/plak mij in jouw onderschrift om mij te verspreiden!

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 31 jul 2005, 11:18

verander het is in:

Code: Selecteer alles

<script language="javascript">
function GetCookie(sName)
{
    var aCookie = document.cookie.split('; '), i = aCookie.length, aCrumb;
    while (i--)
    {
         aCrumb = aCookie[i].split('=');
        if (sName == aCrumb[0])
            return typeof aCrumb[1] != 'undefined'? unescape(aCrumb[1]) : null;
    }

    return null;
}

function SetCookie(sName, sValue)
{
    document.cookie = sName + '=' + escape(sValue) + '; expires=Fri, 31 Dec 2099 23:59:59 GMT; path=/';
}
var geef = GetCookie('weer');
if(geef == 1){
document.getElementById('menu').style.display = 'block';
}else{
document.getElementById('menu').style.display = 'none';
}
function change(value){
if(value == 1){
document.getElementById('menu').style.display = 'block';
}else{
document.getElementById('menu').style.display = 'none';
}
SetCookie('menu',value);
}
</script>

Muiter
Berichten: 823
Lid geworden op: 05 sep 2003, 19:34
Contacteer:

Bericht door Muiter » 31 jul 2005, 11:22

paulus schreef:verander het is in:
Ook niet het gewenste resultaat.
Hoi! Ik ben een onderschrift virus, kopieer/plak mij in jouw onderschrift om mij te verspreiden!

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 31 jul 2005, 12:02

Code: Selecteer alles

<script language="javascript">
function GetCookie(sName)
{
    var aCookie = document.cookie.split('; '), i = aCookie.length, aCrumb;
    while (i--)
    {
         aCrumb = aCookie[i].split('=');
        if (sName == aCrumb[0])
            return typeof aCrumb[1] != 'undefined'? unescape(aCrumb[1]) : null;
    }

    return null;
}

function SetCookie(sName, sValue)
{
    document.cookie = sName + '=' + escape(sValue) + '; expires=Fri, 31 Dec 2099 23:59:59 GMT; path=/';
}
var geef = GetCookie('weer');
if(geef == 1){
document.getElementById('menu').style.display = 'block';
}else{
document.getElementById('menu').style.display = 'none';
}
function change(value){
if(value == 1){
document.getElementById('menu').style.display = 'block';
}else{
document.getElementById('menu').style.display = 'none';
}
SetCookie('weer',value);
}
</script>

Muiter
Berichten: 823
Lid geworden op: 05 sep 2003, 19:34
Contacteer:

Bericht door Muiter » 31 jul 2005, 20:47

Op deze manier lijkt het goed te werken:

Code: Selecteer alles

<script language="javascript"> 
function getCookie(sName) 
{ 
    var aCookie = document.cookie.split('; '), i = aCookie.length, aCrumb; 
    while (i--) 
    { 
         aCrumb = aCookie[i].split('='); 
        if (sName == aCrumb[0]) 
            return typeof aCrumb[1] != 'undefined'? unescape(aCrumb[1]) : null; 
    } 
    return null; 
} 

function setCookie(sName, sValue) 
{ 
    document.cookie = sName + '=' + sValue + '; expires=Fri, 31 Dec 2099 23:59:59 GMT; path=/'; 
} 

function change(value){ 
   if(value == 1){ 
      document.getElementById('menu').style.display = 'block'; 
   }else{ 
      document.getElementById('menu').style.display = 'none'; 
   }    
   setCookie('menu',value); 
} 

function menuInitialiseren(){ 
   var geef = getCookie('menu'); 
   if(geef == 1){ 
      document.getElementById('menu').style.display = 'block'; 
   }else{ 
      document.getElementById('menu').style.display = 'none'; 
   } 
} 
</script> 
</head> 
<body onload="javascript:menuInitialiseren();"> 
<a href="#" onclick="javascript:change(0);">Verbergen</a> || <a href="#" onclick="javascript:change(1);">Weergeven</a> 
<br><br> 
<div id="menu">Hier staat mijn hele menu</div>
Maar h is de bedoeling dat bij je nieuwe bezoek het menu altijd verschijnt en dat is (bij mij) nu nog niet zo. Waarom weet ik niet.

Hoe kan ik hiervan weer één icoontje maken zoals dat voorheen ook was?

Code: Selecteer alles

<a href="#" onclick="javascript:change(0);">Verbergen</a> || <a href="#" onclick="javascript:change(1);">Weergeven</a>
Hoi! Ik ben een onderschrift virus, kopieer/plak mij in jouw onderschrift om mij te verspreiden!

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 31 jul 2005, 21:36

Niet, je zult een 1 en een 0 knop moeten hebben.
Anders moet je het bovenste script weer aan gaan passen.

Gesloten