Avatar billede rdc Nybegynder
05. oktober 2008 - 13:35 Der er 12 kommentarer og
1 løsning

checkbox med forskellige navne

Hej allesammen,

Jeg har søgt rigtig meget på exp.dk, men kan kunne ikke finde noget der præcis havde med mit problem at gøre.. Jeg har 3 checkboxe, som hedder: o_hjemmeholdwin, o_uafgjort, o_udeholdwin. Disse 3 er checkboxe.. Der forekommer et bestemt antal checkboce af disse, afhængig af hvor meget MySQL'en indeholder i tabellen kampe. Så hvis der fx er 3 kampe i MySQL'en, så vil det se sådan her ud:

<input type="checkbox" name="o_hjemmeholdwin" onclick="uncheckOther(this.form, this.name);" value="<?php echo "$hjemmeholdwin";?>" <? print $checking ?>>
<input type="checkbox" name="o_uafgjort" onclick="uncheckOther(this.form, this.name);" value="<?php echo "$uafgjort";?>" <? print $checking ?>>
<input type="checkbox" name="o_udeholdwin" onclick="uncheckOther(this.form, this.name);" value="<?php echo "$udeholdwind";?>" <? print $checking ?>>

<input type="checkbox" name="o_hjemmeholdwin" onclick="uncheckOther(this.form, this.name);" value="<?php echo "$hjemmeholdwin";?>" <? print $checking ?>>
<input type="checkbox" name="o_uafgjort" onclick="uncheckOther(this.form, this.name);" value="<?php echo "$uafgjort";?>" <? print $checking ?>>
<input type="checkbox" name="o_udeholdwin" onclick="uncheckOther(this.form, this.name);" value="<?php echo "$udeholdwind";?>" <? print $checking ?>>

<input type="checkbox" name="o_hjemmeholdwin" onclick="uncheckOther(this.form, this.name);" value="<?php echo "$hjemmeholdwin";?>" <? print $checking ?>>
<input type="checkbox" name="o_uafgjort" onclick="uncheckOther(this.form, this.name);" value="<?php echo "$uafgjort";?>" <? print $checking ?>>
<input type="checkbox" name="o_udeholdwin" onclick="uncheckOther(this.form, this.name);" value="<?php echo "$udeholdwind";?>" <? print $checking ?>>

Jeg har fået lavet et script der tjekker på 3 checkboxe, hvor maks 1 må være markeret.. Men det er jo noget helt andet når jeg ligepludselig har fx. 3x3 checkboxe, hvor man maks stadig kun må markere 1 checkbox i hver række, altså fx:

[ ] [ ] [X]
[ ] [X] [ ]
[ ] [X] [ ]

Der skal altså tjekkes på om maks 1 checkboc er markeret i hverlinje... og husk på at dette er vilkårligt, så der kunne ligeså godt have stået 5x3 checboxe, fx:

[ ] [ ] [X]
[ ] [X] [ ]
[X] [ ] [ ]
[ ] [ ] [X]
[ ] [X] [ ]


på forhånd mange tak for jeres hjælp...
Avatar billede erikjacobsen Ekspert
05. oktober 2008 - 13:49 #1
Skal du så ikke have 3 radioknapper i hver række?
Avatar billede rdc Nybegynder
05. oktober 2008 - 14:01 #2
jeg har også overvejet det, men synes bare at checkboxe ser kønnere ud, end radiobuttons...
Avatar billede w13 Novice
05. oktober 2008 - 14:28 #3
Dine brugere vil jo ikke forvente radiobuttons-opførsel fra checkboxes. Så det er nok bedst med radiobuttons.
Avatar billede rdc Nybegynder
05. oktober 2008 - 14:42 #4
w13 - jo jeg er temmelig sikker på at mine brugere vil forvente det... men altså er det virkelig så svært at lave med checkboxes, eftersom at både du og erikjacobsen foreslår radio button?
Avatar billede erikjacobsen Ekspert
05. oktober 2008 - 15:48 #5
Nej, det er nemt nok. Du skal bare give dem forskellige navne.
Avatar billede rdc Nybegynder
05. oktober 2008 - 15:52 #6
ok erikjacobsen... kan du give mig lidt hjælp til koden, med et eksempel? for give dem navne har jeg prøve før, og det virkede ikke helt rigtigt
Avatar billede erikjacobsen Ekspert
05. oktober 2008 - 16:00 #7
Du kan jo give dem et nummer efter navnet:

name="o_hjemmeholdwin1"
...
name="o_hjemmeholdwin2"
...
name="o_hjemmeholdwin3"
Avatar billede rdc Nybegynder
05. oktober 2008 - 16:10 #8
jo men, ender jeg så ikke med 3 array lister?
Avatar billede w13 Novice
05. oktober 2008 - 18:06 #9
Jo, du vil jo have dem til at være ligesom radiobuttons. Og du jo kan alligevel ikke vælge flere af gangen i dit system.
Avatar billede olebole Juniormester
05. oktober 2008 - 18:24 #10
<ole>

- men hvorfor tror du lige netop, _dine_ brugere forventer at checkboxes opfører sig som radiobuttons - og omvendt? Mon ikke de bliver skuffet, når de opdager strikhuen ikke virker effektivt som kondom!  ;D

Alle webbrugere ved, at der kun kan vælges én radiobutton i en gruppe, hvorimod der kan vælges flere checkboxe i en gruppe - og at det er den eneste forskel på de to typer. Den slags indarbejdede konventioner har det vist aldrig kunne betale sig at stille på hovedet  =)

/mvh
</bole>
Avatar billede rdc Nybegynder
05. oktober 2008 - 19:45 #11
jeg lukker... har fået fikset problemet... grunden til jeg gerne ville have checkboxes, er fordi at med radiobuttons er man "låst" fast med en eventuel fremtidig udvidelse.. Hvor hvis jeg bruger checkbox som nu, så kan jeg udvide det i fremtiden uden problemer... men ligemeget nu... i skal have tusind tak for jeres tid, og hvis i oprettet 2x svar så tildeler jeg pointene til jer...

Her er min løsning, så andre kan få gavn af det:

<script>
function uncheckOther(navn)
    {
        array = navn.split("_");
        id = array[1];
        if((navn != "ohjemmeholdwin_"+id))
        {
            document.getElementById("ohjemmeholdwin_"+id).checked = false;
        }
        else
        {
            document.getElementById("ohjemmeholdwin_"+id).checked = true;
        }
       
        if((navn != "ouafgjort_"+id))
        {
            document.getElementById("ouafgjort_"+id).checked = false;
        }
        else
        {
            document.getElementById("ouafgjort_"+id).checked = true;
        }
       
        if((navn != "oudeholdwin_"+id) )
        {
            document.getElementById("oudeholdwin_"+id).checked = false;
        }
        else
        {
            document.getElementById("oudeholdwin_"+id).checked = true;
        }
    }
</script>

mens min checkbox i formular ser således ud:

<input type="checkbox" name="ohjemmeholdwin_<? echo "$kampid"; ?>" id="ohjemmeholdwin_<? echo "$kampid"; ?>" value="<?php echo "$hjemmeholdwin";?>" onclick="uncheckOther(this.name);" <? print $checking ?>>

<input type="checkbox" name="ouafgjort_<? echo "$kampid"; ?>" id="ouafgjort_<? echo "$kampid"; ?>" value="<?php echo "$uafgjort";?>" onclick="uncheckOther(this.name);" <? print $checking ?>>

<input type="checkbox" name="oudeholdwin_<? echo "$kampid"; ?>" id="oudeholdwin_<? echo "$kampid"; ?>" value="<?php echo "$udeholdwin";?>" onclick="uncheckOther(this.name);" <? print $checking ?>>
Avatar billede erikjacobsen Ekspert
05. oktober 2008 - 20:45 #12
Ingen point til mig, tak. Samler ikke.
Avatar billede rdc Nybegynder
02. marts 2009 - 15:26 #13
lukker
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