Avatar billede alsvik Nybegynder
06. april 2010 - 14:23 Der er 4 kommentarer og
1 løsning

tilføje value til dropdown i HTML form

Hej


Jeg er ved at lave en form hvor jeg, udfra brugerens valg er nød til at sende to værdier fra en enkelt dropdown.

Her er min drop down:

<select id=QueryDepCD name=QueryDepcd>
<option selected value=CPH>København</option>
<option value=BLL>Billund</option>
<option value=AAL>Aalborg</option>
</select>

Det jeg ønsker er at kunne sende lufthavnens DepID med. Kan det lade sig gøre med javascript?

Her er de yderligere data jeg skal have med:
QueryDepCD=CPH = QueryDepid=12678
QueryDepCD=BLL = QueryDepid=12677
QueryDepCD=AAL = QueryDepid=12679

Så når brugeren vælger f.eks CPH sendes følgende data:

&QueryDepCD=CPH&QueryDepID=12678
Avatar billede Slettet bruger
06. april 2010 - 15:38 #1
Var det ikke nemmest at samle dem i én value:

<option value="CPH#12678">København</option>
<option value="BLL#12677">Billund</option>
<option value="AAL#12679">Aalborg</option>

Og så splitte den valgte op i to felter på serveren når formen modtages.
Avatar billede alsvik Nybegynder
06. april 2010 - 16:05 #2
Hej T4NK3R

Det er desværre ikke muligt. Den server jeg sender formen til er ikke min.

Jeg tænkte selv på at tilføje den manglende value som:


<option selected value="12678&QueryDepCD=CPH">København</option>

Men det virker ikke. Heller ikke selvom jeg encoder valuen til:
"12678%26QueryDepCD%3DCPH"
Avatar billede olebole Juniormester
06. april 2010 - 16:37 #3
<ole>

Nej, det kan du under ingen omstændigheder få til at virke. Et select element kan sende én value.

Du er nødt til at blande noget JavaScript ind i processen - men hvordan er det ikke muligt at sige uden at kunne se koden til hele formen

/mvh
</bole>
Avatar billede Slettet bruger
06. april 2010 - 17:01 #4
Nå, så er der ingen vej udenom:

<select id="QueryDepCD" name="QueryDepcd" onchange="doPlus(this)">
  <option value="CPH" plus="12678">København</option>
  <option value="BLL" plus="12677">Billund</option>
  <option value="AAL" plus="12679">Aalborg</option>
</select>

<input type="hidden" name="QueryDepID" value="">

<script>
function doPlus( felt )
  {
  document.forms[0].QueryDepID.value =
      felt.options[ felt.selectedIndex ].getAttribute("plus")
  }
</script>


NB: Utestet men princippet er sundt :)
PS: Hvis du vil præ-selecte en option, skal dens depId også være i det skjulte felts value fra start.
Avatar billede alsvik Nybegynder
06. april 2010 - 17:06 #5
Sådan ser formen ud:

<form id=packageMinimum method=get name=form action=http://www.xxxxx.dk/packageindependentacclist? target="_parent">

Afrejse fra
<select id=QueryDepId name=QueryDepId> <option selected value="12678">København</option> <option value="12676">Billund</option> <option value="12675">Aalborg</option></select>
<br />

Afrejse
<script>DateInput('QueryDepDate', true, 'DD-MM-YYYY','17-MAJ-2010')</script>

Hjemrejse
<script>DateInput('QueryRetDate', true, 'DD-MM-YYYY','19-MAJ-2010')</script>

<br />
<input id=btnSearch value="Klik her og vent" type=submit />

<input type=hidden name=QueryDur id=QueryDur/>
<input name=QueryChkOutDate type=hidden id=QueryChkOutDate />
<input name=QueryChkInDate type=hidden id=QueryChkInDate />
<input id=CategoryId value=3 type=hidden name=CategoryId />
<input id=QueryCtryID value=6749 type=hidden name=QueryCtryID />
<input id=QueryAreaID value=0 type=hidden name=QueryAreaID />
<input id=QueryResID value=6750 type=hidden name=QueryResID />
</form>

Jeg har fjernet nogle onclick på submit-knappen og udelukket noget javascript som kalkulerer forksel på dage fra kalenderen.
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

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