04. oktober 2001 - 19:10Der er
23 kommentarer og 1 løsning
checkbokse... SVÆR!
Jeg skal bruge en side, lige meget hvad sprog, hvor der er f.eks. 5 chekbokse og selvfølgelig en sumbit knap. Hvis man vælger at afkrydse checkboks nr. 1, 2 og 5 skal man komme til én bestemt side.. Hvis man vælger at afkrydse checkboks 1, 2 og 3 kommer man til en anden side osv... Jeg har INGEN anelse om hvordan jeg skal lave det, så hvis der er nogen der vil hjælpe kunne det være fedt! (hvis i overhovedet forstår hvad jeg skriver :o) )
side = 0; hvis a er krydset af forøg side med 1 hvis b er krydset af forøg side med 2 hvis c er krydset af forøg side med 4 hvis d er krydset af forøg side med 8 hvis e er krydset af forøg side med 16
Du skal henvise til 2^5 = 32 sider, for at have alle kombinationer med -- det er da noget af en opgave. Held og lykke!
Mukke\'s løsning er nok umiddelbart den bedste måde at gøre det på. Spørgsmålet er bare, om det skal gøres hos klienten eller på serveren (mao. skal der bruges javascript, eller ASP, PHP, JSP, el.lign.). Jeg ville nok selv gøre det med javascript, hvor der gøres fligtig brug af tabeller.
Jeg bruger OR fordi det er det man bruger i C/C++ og Delphi - når man skal checke om et flag er sat bruger man AND altså checkbox 4 er sat hvis sidenr & 8 er sand :) Det er lettest og hurtigst at arbejde med AND og OR :)
function vaelgDestination( frm ) { var selector = 0; for (var i=0; frm.elements.length>i; i++ ) { if ( frm.elements[i].type == \'checkbox\' && frm.elements[i].name.length == 1 ) { selector *= 2; if ( frm.elements[i].selected ) selector += 1; } if ( selector > dests.length ) { // kodefejl! Du må sørge for at det ikke er mere // end 5 checkbokse med navne der er eet bogstav lange. return false; } frm.action = dests[selector]; return true; };
// --> </script>
og lav en onsubmit i din form:
<form ... onsubmit=\"return vaelgDestination( this )\">
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.