Avatar billede sylvesternielsen Nybegynder
21. oktober 2002 - 12:50 Der er 13 kommentarer og
1 løsning

Checkbox..

jeg har et phpscript som lister en gruppe og så punkter under den gruppe... Jeg har sat op på denne måde:
kategorien:
<input type="checkbox" name="kategori" value="1">

efterfølgende punkter:
<input type="checkbox" name="1" value="id'en">

Det jeg så gerne vil have den til er at når man vælger checkbox for kategori at den så laver alle de checkboxe som har det name som kategorien har som value bliver checked..

Håber i forstår.
Avatar billede thomas_regin Nybegynder
21. oktober 2002 - 13:19 #1
<input type=checkbox name=kategori onclick=doStuff(this.name);>

<script language=javascript>
function doStuff(name)
{
    var myNames = document.getElementByName(name);
    for (i = 0; i < myNames.length; i++)
    {
          myNames[i].checked = true;
    }
}
</script>

Totalt utestet, men prøv alligevel! ;)

Mvh,

Thomas Regin.
Avatar billede sylvesternielsen Nybegynder
21. oktober 2002 - 13:21 #2
Der kan være flere grupper... det der vil ikke virke.. :-(
Avatar billede sylvesternielsen Nybegynder
21. oktober 2002 - 13:54 #3
Den laver også en fejl..

objektet understøtter ikke denne enskab eller metode
Avatar billede Slettet bruger
21. oktober 2002 - 16:49 #4
Du er forkert at give to elementer det samme navn.

Men du kan give dem et fast navn og så et fortløbende nummer, fx "chkX" (X er et nummer fra 0-?).

Og så kan du bruge dette script:

<script>
function chkAlle(frm, navn) {
n = 0;
while (frm.elements[navn + n]) {
frm.elements[navn + n].checked = true;
n++;
}
}
</script>

Kaldes med:

<input type="checkbox" name="kategori" value="navn" onClick="chkAlle(this.form, this.value);">

Alle checkbokse med navnet "navnX" bliver derefter checked.
Avatar billede sylvesternielsen Nybegynder
21. oktober 2002 - 17:02 #5
Det er da ikke forkert når jeg skal have mine data i et array til brug i PHP.. kan ikke lave det uden at kalde dem det samme..
Avatar billede Slettet bruger
21. oktober 2002 - 17:31 #6
Jo, ifølge HTML-standarden er det forkert, og det kan give komplikationer, når du bruger JavaScript. Så lad være med det!
Avatar billede sylvesternielsen Nybegynder
21. oktober 2002 - 18:33 #7
Men jeg laver det altså på den måde... ellers kan jeg ikke lave de scripts jeg skal bruge..
Avatar billede Slettet bruger
22. oktober 2002 - 17:02 #8
Giv mig et eksempel på et script, der ikke kan laves, hvis du bruger forskellige navne! Det vil altid kunne lade sig gøre, selvom du måske bliver nødt til at gå en omvej.
Avatar billede sylvesternielsen Nybegynder
22. oktober 2002 - 23:20 #9
Man kn nok godt lave det på andre måder men det er da alt for besværligt.. Det letteste er bare at ligge mine info i et array og så kører en løkke som tømmer dette..
Avatar billede Slettet bruger
23. oktober 2002 - 17:02 #10
Næ, du bruger bare eval:
http://www.php.net/manual/en/function.eval.php
Men ellers kan du vælge at lægge alle checkboksenes værdier sammen til en kommasepareret streng, når brugeren submitter, og så bruge explode:
http://www.php.net/manual/en/function.explode.php

(hvis du vælger det sidste, skal jeg nok hjælpe dig)
Avatar billede sylvesternielsen Nybegynder
23. oktober 2002 - 20:45 #11
Det er jo bare lidt svært når det er en automatisk genereret liste af checkboxes.
Avatar billede Slettet bruger
24. oktober 2002 - 18:08 #12
Næ, du sender da bare antallet med over i et hidden-felt!
Avatar billede sylvesternielsen Nybegynder
26. oktober 2002 - 13:49 #13
ok så....

Nå men har noget som virker.. næsten da.. Problemmet er at den KUN kan markere objekterne når der er mere end 1.. Hvordan får jeg den til at markere det hvis der kun er 1 så?

<script>
<!-- Begin
function checkAll(field)
{
for (i = 0; i < field.length; i++)
    field[i].checked = true ;
}

function uncheckAll(field)
{
for (i = 0; i < field.length; i++)
    field[i].checked = false ;
}
//  End -->
</script>
Avatar billede Slettet bruger
26. oktober 2002 - 18:54 #14
Jeg synes ikke, det er særlig smart at gøre sådan.
Men dette skulle gerne virke:

function checkAll(field) {
if (typeof(field.length) != 'undefined') {
for (i = 0; i < field.length; i++)
field[i].checked = true;
}
else
field.checked = true;
}

Du kan nok selv regne uncheckAll ud!
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