TobiasG Skrevet 25. oktober 2012 Del Skrevet 25. oktober 2012 (endret) Hei. Var litt usikker på hvor jeg skulle poste denne, men.. Sitter med en kode for å toggle en div som ser slik ut; function toggle() { var ele = document.getElementById("toggle"); var text = document.getElementById("display"); if(ele.style.display == "block") { ele.style.display = "none"; } else { ele.style.display = "block"; } -------------------------------- <h2 id="display" onClick="javascript:toggle();">Show/Hide</h2> <div id="toggle" style="display:block;"> Skulle gjerne hatt websesjonen til å huske din toggle, og tenkte en fin løsning kunne vært å lagre display status som $_SESSION['toggle']; ex function toggle() { var ele = document.getElementById("toggle"); var text = document.getElementById("display"); if(ele.style.display == "block") { ele.style.display = "none"; <?php $_SESSION['toggle'] = "none"; ?> } else { ele.style.display = "block"; <?php $_SESSION['toggle'] = "block"; ?> } -------------------------------- <h2 id="display" onClick="javascript:toggle();">Show/Hide</h2> <div id="toggle" style="display: <?php if($_SESSION['toggle']){ echo $_SESSION['toggle']; } else { echo "block"; } ?>"> Finnes sikkert lettere måte å gjøre dette på (Tenkte jeg skulle unngå å lage en js cookie på det). MEN! Problemet er at PHP ser ikke ut til å reagere på IF/ELSE statementen i scriptet. Den leser begge linjene så $_SESSION['toggle'] vil alltid ha value "block". Noen som vet hvordan jeg kan løse det med php i en js if/else? Eller har en annen god løsning? Endret 25. oktober 2012 av TobiasG Lenke til kommentar
Crowly Skrevet 25. oktober 2012 Del Skrevet 25. oktober 2012 (endret) Kan være en fordel å ta i bruk jQuery, toggle() funksjonen der er veldig enkel og praktisk $('#idnavn').toggle(); // skjul hvis vist, vis hvis skjult $('#idnavn').toggle(false); // alltid skjul $('#idnavn').toggle(true); // alltid vis En annen bruker spurte nylig om noe tilsvarende: http://www.diskusjon...owtopic=1466880 Husk PHP er server side scripting, Javascript er brower/client side. Så PHP er ikke klar over hva javascript gjør, om man ikke tar i bruk ajax. Men PHP er ikke nødvendig til å løse dette problemet. Endret 25. oktober 2012 av Crowly Lenke til kommentar
TobiasG Skrevet 26. oktober 2012 Forfatter Del Skrevet 26. oktober 2012 Prøvde meg på $('#idnavn').toggle(); // skjul hvis vist, vis hvis skjult Men ser ikke ut til at den husker posisjonen. Så snart jeg refresher siden så mister den posisjonen, så da er jeg igjen like langt. Dette var jo hele meningen med å legge display verdien i en php string. Lenke til kommentar
etse Skrevet 26. oktober 2012 Del Skrevet 26. oktober 2012 Prøvde meg på $('#idnavn').toggle(); // skjul hvis vist, vis hvis skjult Men ser ikke ut til at den husker posisjonen. Så snart jeg refresher siden så mister den posisjonen, så da er jeg igjen like langt. Dette var jo hele meningen med å legge display verdien i en php string. Dette er fordi klienten ikke husker siste state, du lagrer den aldri. (Og om du vil den skal lagre noe må du eksplisitt gjøre det). F.eks. kan du bruke javascript og sette en cookie i nettleseren til den siste staten, for så å hente den ut fra cookien når brukeren refresher siden, og sette den til den staten du har lagret i cookien. Lenke til kommentar
TobiasG Skrevet 26. oktober 2012 Forfatter Del Skrevet 26. oktober 2012 Var det jeg helst ville unngå å bruke. Men, kan vel bruke jQuery Ajax til å lagre en session value som setter display Må bare lese litt mer først Lenke til kommentar
Crowly Skrevet 26. oktober 2012 Del Skrevet 26. oktober 2012 Evt. kan du ta en titt på web storage: http://w3schools.com/html/html5_webstorage.asp localStorage.getItem('navn'); // hent localStorage.setItem('navn', verdi) // lagre Men du vil fortsatt lagre noe på brukerens pc, men det blir husket på selv om bruker lukker nettleseren, noe en session ikke gjør. Alternativt må du ta i bruk ajax slik at det ikke er behov for å refreshe siden. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå