Avatar billede 17196 Nybegynder
17. oktober 2007 - 21:14 Der er 7 kommentarer og
1 løsning

Udvidelse til toggle vis/skjul

Som det er nu, så lukkes alle når jeg trykker mig videre fra en af de links, som jeg har indeni de vis/skjul divs. Jeg kunne godt bruge lidt hjælp, til at få den aktuelle div som jeg har klikket på linket i til at åbne igen efter siden er geninlæst, og det aktuelle indhold er fundet.

Her er mit toggle script:
x=new Array( );
function toggle_visibility(id) {
    if(x[id] != 1) {
        document.getElementById(id).style.display = 'block';
        document.getElementById('i'+id).src = './gfx/icon_arrow_close.gif';
        document.getElementById('i'+id).title = 'Toggle Close';
    x[id] = 1;
    } else {
        document.getElementById(id).style.display = 'none';
        document.getElementById('i'+id).src = './gfx/icon_arrow_open.gif';
        document.getElementById('i'+id).title = 'Toggle Open';
    x[id] = 0;
    }                                   
}

Håber det giver mening - ellers så må jeg prøve at uddybe :D
Avatar billede w13 Novice
17. oktober 2007 - 21:48 #1
Ah, ja se dert er ikke helt ligetil. Kan du bruge ASP/PHP på din server? Og kender du evt. noget til en af disse?
Avatar billede 17196 Nybegynder
17. oktober 2007 - 21:57 #2
Yes, det er php, og jeg er helt med på $_GET som du nok tænker på.
Jeg er ude i noget med at sætte det i et hidden felt, og så på den måde hente det. Jeg vil gerne selv kode det, så hvis jeg bare kunne få et skub i den rigtige retning, så ville det bare være super :D
Avatar billede w13 Novice
18. oktober 2007 - 00:19 #3
Jaeh, men desværre er det jo lidt besværligt. Du kan kun hente indholdet fra feltet, hvis det er blevet submittet.

Mit forslag er nok, selvom det kan være besværligt, at sætte det bag på linket til den nye side, og så lade den nye side aflæse linket (querystringen), og på den måde finde ud af, hvilken menu, der skal være åben.

Et alternativ kunne være Ajax, men det skal man passe lidt på med at rode sig ud i, da man let kommer til at skyde sig selv i foden. Du kan dog imitere Ajax ved at bruge et skjult IFrame, som du kan loade en PHP-side i, hver gang der trykkes på en menu. Denne PHP-side kan så gemme oplysninger om den åbnede menu i en Session. Og denne Session kan så hentes, når man indlæser menuen, og fortælle hvilken menu, der skal være åben.

Forstod du noget af det? :P
Avatar billede 17196 Nybegynder
18. oktober 2007 - 00:47 #4
Ja, er bare ikke vild med nogle af de løsninger :P
Ajax er overkill til dette formål.
Iframe kunne bruges, men er ikke vild med ting der indeholder ordet frame, så det vil jeg helst undgå.
Avatar billede w13 Novice
18. oktober 2007 - 01:06 #5
Ja, er helt enig. Desværre er det bare ikke særlig enkelt at lave det, du ønsker.
Jeg havde nok valgt IFramet, da det virker og sparer dig mest kode.

IFramet kunne være sådan her:
<iframe id="remembermenu" style="display:none"></iframe>

På dine undermenuer, der kan åbnes, skal du så have en:
onclick="document.getElementById('remembermenu').setAttribute('src','remembermenu.php?menuid='+this.getAttribute('id'))"

remembermenu.php indeholder så koden: Session("åbnmenu")=menuid'et fra querystringen

Og du skal på modtagersiden blot have en kode, der hedder "Indeholder Session('åbnmenu') noget, så skriv javascript-koden for at åbne menuen med det id".

Jeg synes personligt f.eks., at det ville være lige i overkanten at skulle submitte en form, ved hvert sideskift.
Avatar billede w13 Novice
18. oktober 2007 - 01:07 #6
IFrame-løsningen er i hvert fald også crossbrowser.
Avatar billede 17196 Nybegynder
19. oktober 2007 - 08:41 #7
Jeg endte med at lave et link med href void(0) og onclick visPost('blabla','blabla') som så udskrev rækkerne i en div.
Men du skal have mange tak for tiden w13 - smid et svar! God weekend!
Avatar billede w13 Novice
20. oktober 2007 - 02:58 #8
Ok. =) godt du fik det til at virke.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

IT-Sikkerhedsrådgiver til Cyberdivisionen i Hvidovre

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Netværkstekniker til Forsvarets Cyberdivision i Hvidovre – Er det dig?

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Kickstart din IT-karriere som IT-supporterelev på Flyvestation Aalborg