Avatar billede sk-man Nybegynder
15. juli 2009 - 00:21 Der er 3 kommentarer og
1 løsning

Loop igennem checkboxe

Hejsa

Jeg har et problem med en html form indeholdende en række checkboxe. Problemet består i navngivningen af de checkboxe og kombinationen af javascript og php.

Min Form indeholder følgende (forenklet):

<input type='checkbox' name='indhold[]' value='kød' />Kød
<input type='checkbox' name='indhold[]' value='ris' />Ris
<input type='checkbox' name='indhold[]' value='is' />Is

Checboxene er navngivet med "[]" så jeg kan loope igennem dem i php når formen bliver submittet:

$state=$_POST['indhold'];
foreach ($state as $statename)
{
  echo "$statename is checked<br />";
}

MEN når de er navngivet med "[]" virker min knap til at checke alle checkboxe i javascript ikke. Den virker hvis "[]" ikke er med.

java script:
function checkAll(field)
{
for (i = 0; i < field.length; i++)
    field[i].checked = true ;
}

HTML Button der kalder javascriptet:
<input type="button" name="CheckAll" value="Check All" onClick="checkAll(document.myform.indhold)">

Er der nogen der har en ide til hvordan jeg modificerer mit javascript så det virker med navngivningen med []?
Avatar billede erikjacobsen Ekspert
15. juli 2009 - 00:57 #1
Så kan du give den et unikt id.

<input type='checkbox' id="check1" name='indhold[]' value='kød' />Kød
Avatar billede erikjacobsen Ekspert
15. juli 2009 - 00:58 #2
(sådan groft sagt, så er name-attributten beregnet til brug på serveren, og id-attributten beregnet til klienten/browseren)
Avatar billede _skou_ Nybegynder
15. juli 2009 - 10:11 #3
Prøv noget i stil med:

var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
  if (inputs[i].type == "checkbox")
    inputs[i].checked = true;
}
Avatar billede sk-man Nybegynder
15. juli 2009 - 18:00 #4
Hov, det var den forkerte der fik point der :-S

Det hjalp bare at tilføje id parameteren.
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