Avatar billede macavity Nybegynder
18. oktober 2001 - 18:16 Der er 8 kommentarer og
1 løsning

tilgang til <select multiple name=select[ ]> i javascript

jeg har en select som i overstående på min side. for at kunne sende flere værdier til brug i serverside PHP skal der (som bekende) være []efter navnet. men det gør så at jeg ikke kan komme til den i javascript med den normale:
document.form.select.value
hvordan kan jeg komme til den på en anden måde? evt komme til alle valgte værdier?

/Macavity
Avatar billede jumper Nybegynder
18. oktober 2001 - 18:17 #1
Avatar billede jumper Nybegynder
18. oktober 2001 - 18:20 #2
Så nej, du \"skal\" ikke bruge [] efter navnet, det gør det blot lettere for dig (en convenience method).

/Thor
Avatar billede macavity Nybegynder
18. oktober 2001 - 18:21 #3
jeg må indrømme, at det ikke var det svar jeg håbede på.

hvis du så også kan fortælle mig hvor jeg kan lære at parse headers er pointene dine :-)

/Macavity
Avatar billede jumper Nybegynder
18. oktober 2001 - 18:24 #4
Du kan loope igennem $HTTP_GET_VARS og $HTTP_POST_VARS, eller også kan du bruge din forms elements collection, hvormed dette

document.formNavn.dinSelect[]

bliver til

document.formNavn.elements[\"dinSelect[]\"]

/Thor
Avatar billede macavity Nybegynder
18. oktober 2001 - 18:26 #5
ah, på den måde - takker
Avatar billede jumper Nybegynder
18. oktober 2001 - 18:29 #6
no prob - og du må undskylde hvis mit første svar var lidt drillende \"tihi\" :P

Jeg er blot blevet spurgt det samme spørgsmål tonsvis af gange af PHP programmører, og oftest går det ikke op for dem at navngivningskonventionen i sig selv giver en direkte syntaks fejl. Derfor lavede jeg den \"faq\" ;o)

/Thor
Avatar billede jakoba Nybegynder
18. oktober 2001 - 18:32 #7
Det kan du faktisk godt, men i lidt begrænset omfang:
Husk lige at sætte \" eller \' omkring din name parameter:
<select multiple name=\"select[ ]\">

du kan nu finde det form-element med:

  var fe = document.formNavn.elements;
  for (var i=0; fe.length>i; i++ )
      if ( fe[i].type=\"select-multiple\" && fe[i].name=\'select[ ]\' )
          break;
  if ( fe.length>i ) var sel = fe[i];
  // nu er sel dit select-objekt og du kan nusse rundt i det normalt.

mvh JakobA
Avatar billede macavity Nybegynder
19. oktober 2001 - 10:28 #8
well, jeg viste godt det var en syntaks fejl - det står der jo i fejlbeskeden fra IE. jeg vidste bare ikke hvordan man slap af med den :-)
Avatar billede jumper Nybegynder
19. oktober 2001 - 11:15 #9
Derudover er selectName[] en direkte forbudt navngivning der overtræder HTML standarden :D (har lige opdateret php.asp)

/Thor
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