Avatar billede milo Nybegynder
23. september 2004 - 13:17 Der er 9 kommentarer og
1 løsning

select boxe

Hvis man har nogle select boxe, som ved valg skal vise en select box yderligere alt efter valg i første box, etc. Hvordan laves dette smartest? Lige nu har jeg bare en masse if'er der tjekker om man har valgt noget i en boks, men det er lidt rodet i længden.

Nogen der har et eksempel til hvordan man kan løse dette smart?
Avatar billede milo Nybegynder
23. september 2004 - 13:17 #1
Forresten, gør det på den måde at jeg i hver select box har onchange="this.form.submit();
Avatar billede detox Nybegynder
23. september 2004 - 13:21 #2
Du kan måske lave en switch istedet for if'erne:
http://dk.php.net/manual/en/control-structures.switch.php
Avatar billede milo Nybegynder
23. september 2004 - 13:23 #3
Det er stort set det samme, og kan ikke bruges da det er forskellige ting hele tiden der skal tjekkes på.

Søger nok nærmere en smart OOP måde at gøre det på, eller lign.
Avatar billede milo Nybegynder
23. september 2004 - 13:55 #4
En smart javascript løsning vil også være fin :)
Avatar billede detox Nybegynder
23. september 2004 - 13:59 #5
Men hvad mener du når du siger; "det er forskellige ting hele tiden der skal tjekkes på"? Er det en dynamisk select menu, der ændrer sig fra gang til gang.
Ellers tænkte jeg du kunne have de forskellige muligheder liggende i en MySQL tabel. Så kunne du jo umiddelbart hente mulighederne til den anden box.
Avatar billede milo Nybegynder
23. september 2004 - 14:03 #6
Nogle af informationerne ligger statisk, andre ligger i en database (postGreSQL).

Det jeg gerne vil have et alternativ til er:
<select name="foo">
  <option value="1">bar</option>
</select>

<?php
if ($_GET["foo"] == 1) {
  echo '
  <select name="bar">
      <option value="1">bar</option>
  </select>
  ';
}
?>

Og så endnu en if de rtjekker om bar er sat...dette er ret uoverskueligt og grimt i længden.
Avatar billede detox Nybegynder
23. september 2004 - 14:24 #7
Avatar billede milo Nybegynder
23. september 2004 - 14:29 #8
Desværre, boksene skal ikke fremkomme før parent er valgt.
Se fx http://freeserve.xentive.com/mms_football.php hvor jeg har lavet det på omtalte måde, som jeg helst vil undgå til noget nyt jeg arbejder på pt.
Avatar billede detox Nybegynder
23. september 2004 - 15:14 #9
I see. Jeg tror umiddelbart en løsning, hvor du gemmer de enkelte select options i databasen med en henvisning til parent id, vil være det mest fornuftige, da du på den måde kan hente dem umiddelbart (uden if).
Jeg har ikke meget begreb om postGreSQL, så der kan jeg ikke hjælpe :o(
Avatar billede milo Nybegynder
24. september 2004 - 12:56 #10
fik en løsning, noget i stil med:
$menu = array(
      "Hovedmenu" => array(
        "Underpunkt 1" => array(),
        "Underpunkt 2" => array()
      ),
      "Undermenu" => array(
        "Underpunkt 3" => array()
      )
);
echo '<select name="foo" onchange="document.forms[0].submit();">';
foreach($menu as $k => $v) {
      echo '<option value="'.$k.'" '.($_POST["foo"] == $k ? 'SELECTED' : '').'>'.$k.'</option>';
}

echo '</select>';

har dog droppet den opbygning og fundet på noget andet... :) ellers tak.
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