Avatar billede zarathustra Nybegynder
14. august 2001 - 11:50 Der er 2 kommentarer og
1 løsning

selected i drop down menu

I den nedenstående kode har jeg konstrueret to drop downmenuer til et formfelt, hvor brugeren kan knytte nogle personer til noget information.
Dette formfelt benyttes imidlertid også til at redigere eksisterende information, hvor nogle personer allere ER tilknyttet. Dette skulle gerne vise sig ved at disse personer er vist i drop downmenuen - altså skal de være SELECTED.

Men hvordan får jeg automatisk udviddet min HTML, så de rigtige personer bliver SELECTED???

Jeg havde overvejet at bruge et regulært udtryk, men det bliver meget tricky med to menuer.

<?
$query = \"select id, navn...\";
           
$selector1 = \"<select name=\\\"underviser_id\\\">
              <option value=\\\"0\\\">ingen underviser\";
$selector2 = \"<select name=\\\"underviser_id2\\\">
              <option value=\\\"0\\\">ingen underviser\";

$result = mysql_query($query, $db);

while ($row = mysql_fetch_row ($result)) {
list($id, $navn) = $row;

$selector1 = $selector1. \"<option value=\\\"$id\\\">$navn\";
$selector2 = $selector2. \"<option value=\\\"$id\\\">$navn\";
}

$selector1 = $selector1. \"</select>\";
$selector2 = $selector2. \"</select>\";
?>

<tr><td>$selector1 $selector2</td></tr>

Avatar billede naesbygaard Nybegynder
14. august 2001 - 11:58 #1
if($noget == \"nogetandet\"){ echo \"SELECTED\";}
Men det skal så stå i hver af options-tingene!

/NbG
Avatar billede zarathustra Nybegynder
14. august 2001 - 13:10 #2
naesbygaard, tak for svaret. Det fungerer sikkert også godt nok, hvis der kun er få poster i dropdownmenuen, men hvad hvis der er mange..så bliver det utrolig meget kode for utrolig lidt. Der må være en nemmere måde! - der f.eks. involverer function.
:-)
Avatar billede razor Nybegynder
14. august 2001 - 14:48 #3
http://razor.dk/php/functions#select_box

<?php

function select_box($array, $selected, $name) {
  $out = \"<select name=\\\"$name\\\">\";
  foreach ($array as $key => $value) $out .= sprintf(\"<option value=\\\"$key\\\"%s>$value</option>\\n\", $key == $selected ? \' selected\' : \'\');
  return $out.\"</select>\";   
}

$query = \"select id, navn...\";
           
$selector1[0] = $selector2[0] = \"ingen underviser\";

$result = mysql_query($query, $db);

while ($row = mysql_fetch_row ($result)) {
  $selector1[$row[0]] = $row[1];
  $selector2[$row[0]] = $row[1];
}

print \"<tr><td>\";
print select_box($selector1, $underviser_id, \"underviser_id\");
print select_box($selector2, $underviser_id2, \"underviser_id2\");
print \"</td></tr>\";

?>

Der tages forbehold for evt. fejl :)
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