Avatar billede pissed_squirrel Nybegynder
29. september 2008 - 19:28 Der er 13 kommentarer og
1 løsning

Array, name og id?

Hej Eksperter

Jeg håber i kan hjælpe mig med et spørgsmål

I PHP kan man bruge name="navn[]" hvis man har flere inputfelter man gerne vil have returneret i et array

Hvordan gør man det med Javascript?

Jeg har nemlig flere checkbox'e og kan ikke rigtig få det til at virke med navn[] og heller ikke med id[]

Er der nogle der kan komme med noget hjælp så jeg kan komme videre?

Skriv endelig hvis jeg ikke har formuleret mig klart :)

På forhånd tak
Avatar billede erikjacobsen Ekspert
29. september 2008 - 19:37 #1
Du kunne kalde navne og id-er noget forskelligt, men man kan i praksis også:

  <form>
  <input type="text" name="navn[]" value="1">
  <input type="text" name="navn[]" value="7">
  </form>

og så:

    var a=document.forms[0].elements["navn[]"];
    alert(a[0].value);
    alert(a[1].value);
Avatar billede pissed_squirrel Nybegynder
29. september 2008 - 19:50 #2
Hvordan kan jeg så tjekke hvilke af mine tjekbokse som er tjekket hvis jeg bruger navn[]?

Jeg kan ikke bruge forskelligt navn til hver enkelt tjekboks for det er ikke defineret hvor mange jeg har dem.

Og er det ikke bedre at bruge document.getElementById end document.getElementsByName?

Du må sige til hvis der skal flere point i puljen!
Avatar billede erikjacobsen Ekspert
29. september 2008 - 19:58 #3
Points er ligemeget. Hvordan skelner du mellem dine checkboxe på serveren?
Avatar billede pissed_squirrel Nybegynder
29. september 2008 - 21:53 #4
<input type="checkbox" value="Sport" name="Genre[]">
<input type="checkbox" value="Animation" name="Genre[]">

Er det det du mener?
Avatar billede erikjacobsen Ekspert
29. september 2008 - 21:57 #5
Så kan du jo aflæse value i javascript.
Avatar billede pissed_squirrel Nybegynder
29. september 2008 - 22:27 #6
Ja, den er jeg med på og det virker også fint nok, men hvordan tjekker jeg om en af de mange checkbox'e er checket af? Meningen er jo at jeg ikke skal angive hvor mange jeg har så jeg hurtigt og nemt at kan tilføje en ekstra checkbox til mængden
Avatar billede erikjacobsen Ekspert
29. september 2008 - 22:41 #7
Een af dem skal være afkrydset? Kun een? Må der være flere?
Avatar billede erikjacobsen Ekspert
29. september 2008 - 22:46 #8
Nå, ja, du kan tælle dem, og så gøre hvad du vil ;)  Skitse:

  <form>
  <input type="checkbox" name="navn[]" value="1" checked>
  <input type="checkbox" name="navn[]" value="7" checked>
  </form>

og

  var a=document.forms[0].elements["navn[]"];
  var count=0;
  for (var i=0;i<a.length;i++) {
    if (a[i].checked) { count++;  }
  }
  alert(count)
Avatar billede pissed_squirrel Nybegynder
29. september 2008 - 22:59 #9
Din metode virker da kun hvis formen bliver submit'et?

Jeg submitter nemlig ikke formen for jeg har ikke en. Jeg skal bruge javascripten i forbindelse med noget Ajax, det er derfor
Avatar billede erikjacobsen Ekspert
29. september 2008 - 23:01 #10
Du kan udføre den kode hvor du vil - i en knap, i noget Ajax, og selvfølgelig i en submit.
Avatar billede pissed_squirrel Nybegynder
29. september 2008 - 23:22 #11
Ok, jeg kigger på det og så vender jeg tilbage

Tak foreløbigt :)
Avatar billede pissed_squirrel Nybegynder
30. september 2008 - 15:27 #12
Mange tal for hjælpen det var noget der godt kunne bruges

Hvis du smider et svar så sender jeg point afsted til dig :)
Avatar billede erikjacobsen Ekspert
30. september 2008 - 15:28 #13
Lyder godt. Men jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.
Avatar billede pissed_squirrel Nybegynder
30. september 2008 - 15:41 #14
Fair nok så, men tak for hjælpen i det mindste så :D
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