Avatar billede floetti Nybegynder
05. juni 2007 - 14:06 Der er 14 kommentarer

Hente begge value og label

Hej,

Jeg er gået fuldstændig i stå på et helt enkelt problem... Hvordan får jeg hivet både value og label fra en multiple dropdown boks ud på siden?

$land = $_POST["countries"];
foreach($land as $key => $val){
echo $val;
}

hvilket får value ud, men nu mangler Label så...

Håber at nogen kan hjælpe...
Avatar billede floetti Nybegynder
05. juni 2007 - 14:09 #1
<select name="countries[]" multiple="multiple" id="countries">
<option value="DK">Danmark</option>
<option value="NO">Norge</option>
<option value="SWE">Sverige</option>
<option value="DE">Tyskland</option>
</select>

som så spyder:

1 -> DK
2 -> NO
3 -> SWE

hvor jeg gerne vil have Danmark, Norge, Sverige ud på side også
Avatar billede erikjacobsen Ekspert
05. juni 2007 - 14:10 #2
$land = $_POST["countries"];
foreach($land as $key => $val){
echo "$key -> $val ";
}
Avatar billede erikjacobsen Ekspert
05. juni 2007 - 14:10 #3
Nåh, teksten. Den kommer ikke med over.
Avatar billede floetti Nybegynder
05. juni 2007 - 14:10 #4
ja nemlig ja
Avatar billede michael_stim Ekspert
05. juni 2007 - 14:13 #5
Så tror jeg du skal ud i noget hiddenfelt og lägge teksten deri.
Avatar billede michael_stim Ekspert
05. juni 2007 - 14:14 #6
Så tror jeg du skal ud i noget hiddenfelt og lägge teksten deri.
Med noget javascript ;o)
Avatar billede erikjacobsen Ekspert
05. juni 2007 - 14:16 #7
Min anbefaling vil nu være bare at slå det op, når det kommer over på serveren igen. Det er vel genereret derfra i første omgang alligevel.
Avatar billede michael_stim Ekspert
05. juni 2007 - 14:19 #8
Eller er der ikke flere lande end dem, kan du lave en switch case, hvis du abselut skal bruge hele navnet.
Avatar billede floetti Nybegynder
05. juni 2007 - 14:20 #9
ok, jeg har en lang liste med lande some jeg gerne vil have smidt i en db. Måske kan jeg finde en liste et eller andet sted som er klar til at smide i en mysql?
Avatar billede erikjacobsen Ekspert
05. juni 2007 - 14:37 #10
Eller
    <option value="DE-Tyskland">Tyskland</option>
og lav en split på "-"
Avatar billede floetti Nybegynder
05. juni 2007 - 14:55 #11
jo, det kunne man nok gøre... men nu er listen på gode 230 linjer, så det er lidt a et arbejde at gå i gang med ;p - Jeg prøver mig frem, tak for kommentarerne
Avatar billede coderdk Praktikant
05. juni 2007 - 15:23 #12
Helt utestet, men hvad med noget i stil med:

<script type="text/javascript">
  function getVal(what)
  {
      what.countryname.value = what.countries[what.countries.selectedIndex].text;
  }
</script>
<input type="hidden" name="countryname" value="">
<select name="countries[]" multiple="multiple" id="countries" onchange="getVal(this)">
Avatar billede erikjacobsen Ekspert
05. juni 2007 - 15:40 #13
Man kan vælge flere lande, coderdk ;)
Avatar billede coderdk Praktikant
05. juni 2007 - 16:32 #14
erikjakobsen, Aah, jeg overså lige "multiple" :)

Hvis det er en statisk HTML-liste, og du ikke gad at lave listen om som erikjakobsen skriver i hånden, så kunne man jo lave et javascript der kører ved side-load som udskifter value i select-listen med det som erikjakobsen skriver...

<script type="text/javascript">
  window.onload = function ()
  {
    list = document.getElementById("countries");
    for (i=0;i<list.length;i++)
    {
      list[i].value = list[i].value + "-" + list[i].text;
    }
  }
</script>

Igen - komplet utestet!
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