Avatar billede jonas_j Nybegynder
18. august 2004 - 13:15 Der er 7 kommentarer og
1 løsning

3 select-sætninger, som skal være afhængige af hinanden.

Jeg skal have lavet et menu-system af 3 select sætninger. Det skal bruges til at at have et overordnet hovedemner. Når man selecter emnet, skal der genereres en ny select sætning med de emner som høre under hovedeemnet. Når et underemne er valgt skal der igen genereres en select med nogle underemner, eller i mit tilfælde nogle projekter. Her er lige en grafik billede af det:

Hovedeemner --> Hardware => klik, generer ny select (dropdown) med følgende underpunkter
Underemner --> Oversigter, Reservedele => klik, medfører en ny select (dropdown)
Projekter --> Opret ny projekt, Netværks oversigt, Reservedel liste for lager.

Problemet er så, at når jeg vælger et emne i min "Underemne dropdown" går den op og nulstiller min Hovedeemner dropdown. Hvordan fastlåser jeg min hovede dropdon, når den allerede er blevet valgt fra tidligere?
Avatar billede sukos Juniormester
18. august 2004 - 13:27 #1
Nok fordi du bruger POST i din form.
det er nok nemmest at lave, hvis du bruger GET
Avatar billede jonas_j Nybegynder
18. august 2004 - 13:34 #2
Ok. Hvordan får man så værdien med fra forrige dropdown (select-sætning) ?
Avatar billede jonas_j Nybegynder
18. august 2004 - 14:12 #3
Det jeg mener er hvordan jeg får lavet at min GET kommer til at se sådan ud:
Projekt/projekt_hoved.php?projekt_hoved=1&&projekt_linier=1. Sådan jeg får begge værdier med!
Avatar billede retep Nybegynder
18. august 2004 - 14:16 #4
Ved ikke om jeg forstår dig helt, men jeg prøver ;)

Dit hovedemne har jo et id, som du bruger til at finde ud af hvad der skal være i den næste select.

Når du så skriver hoved-selecten igen skal du bare spørge på id'et og hvis de matcher sætte 'selected' i din <option>

Altså noget ala (pseudo-kode):
while ($row = mysql_fetch_row($res)){
echo "<option value='".$row[0]."' ";
if ($_GET["hovedId"] == $row[0]){
  echo "selected";
}
echo "> $row[1] </option>";

}

Håber det er til at forstå ;)
Avatar billede retep Nybegynder
18. august 2004 - 14:17 #5
hmmm... var nok ikke det du mente, tror ikke jeg forstår dig ;)
Avatar billede jonas_j Nybegynder
18. august 2004 - 14:25 #6
Her er min kode, så er det måske nemmere og se hvordan!


#########################################################################################
#                            Hovedmenu (projekt_hoved)
#########################################################################################
  echo '<form enctype="multipart/form-data" method="GET" action=' . $PHP_SELF . '>';
  echo '<table width="100%" cellspacing="0" cellpadding="0" border="1">';
  echo '<tr>';
  echo '  <td width="13%">A. Hovedemne</td>';
  echo '  <td>';

  $projekt_hoved_SQL = "SELECT * FROM projekt_hoved";
  $projekt_hoved_result = mysql_query($projekt_hoved_SQL, $connection) or die ("Cannot EXECUTE SQL Query");

  // select start
  echo '<select name="projekt_hoved" onChange="this.form.submit()">';
  if ($projekt_hoved == "") {
      echo '<option value="">Vælg</option>\n';
  }

  //menupunktet ny
  if ($projekt_hoved == "new_hoved") {
    echo '<option selected value="new_hoved">Ny</option>\n';
  } else {
    echo '<option value="new_hoved">Ny</option>\n';
  }

  while ($hoved =mysql_fetch_array($projekt_hoved_result)) {
    if ($projekt_hoved == $hoved[id]) {
      echo '<option selected value="' . $hoved[id] . '">' . $hoved[id] . $hoved[navn] . '</option>\n';
    } else {
      echo '<option value="'.$hoved[id].'">' . $hoved[id]. $hoved[navn] . '</option>\n';
    }
  } //end while
  echo '</select>';  // select slut

  // hvis menupunkt ny vælges
  if ($projekt_hoved == "new_hoved") {
    echo '    <td> Navn </td>';
    echo '  <td><input type="text" size="80" name="new_projekt_hoved" value="">';
  }
 
  if ($projekt_hoved == "new_hoved") {
    print '&nbsp;&nbsp;&nbsp;<input type="submit" name="insert_hoved" value="Gem"></td>';
  } else {
    print '&nbsp;&nbsp;&nbsp;<input type="submit" name="delete_hoved" value="Slet"></td>';
  }
  echo '</tr>';
  echo '</table>';
  echo '</form>';


#########################################################################################
#                            Undermenu (projekt_linier)
#########################################################################################

    if ($projekt_hoved <> "new_hoved") {
        $projekt_linier_SQL = "SELECT * FROM projekt_linier WHERE projekt_hoved_id='$projekt_hoved'";
        $projekt_linier_result = mysql_query($projekt_linier_SQL, $connection) or die ("Cannot EXECUTE SQL Query");
     
    echo '<form enctype="multipart/form-data" method="GET" action=' . $PHP_SELF . '>';
    echo '<table width="100%" cellspacing="0" cellpadding="0" border="1">';
    echo '<tr>';
    echo '  <td width="13%">B. Underemne</td>';
    echo '  <td>';
         
    echo '<select name="projekt_linier" onChange="this.form.submit()">';
    if ($projekt_linier == "") {
        echo '<option value="">Vælg</option>\n';
    }
       
    if ($projekt_linier == "new_linier") {
        echo '<option selected value="new_linier">Ny</option>\n';
    } else {
        echo '<option value="new_linier">Ny</option>\n';
    }
       
    while ($linier =mysql_fetch_array($projekt_linier_result)) {
        if ($projekt_linier == $linier[id]) {
            echo '<option selected value="' . $linier[id] .'">' . $linier[id] . $linier[navn] . '</option>\n'; 
        } else {
              echo '<option value="'.$linier[id]. '">' . $linier[id] . $linier[navn] . '</option>\n';
            }
    } //end while
   
    echo '</select>';
         
    if ($projekt_linier == "new_linier") {
        echo '    <td> Navn </td>';
        echo '  <td><input type="text" size="50" name="new_projekt_linier" value="">';
    }
         
    if ($projekt_linier == "new_linier") {
        print '&nbsp;&nbsp;&nbsp;<input type="submit" name="insert_linier" value="Gem"></td>';
    } else {
        print '&nbsp;&nbsp;&nbsp;<input type="submit" name="delete_linier" value="Slet"></td>';
    }
   
    echo '</tr>';
    echo '</table>';
    echo '</form>';
    }
?>
Avatar billede jonas_j Nybegynder
18. august 2004 - 14:41 #7
Nååhhh... det er måske fordi jeg slutter min <form> for tidlig og startter den igen for hver select jeg har!! aaahhhh. Noget af mit problem ihvertfald
Avatar billede jonas_j Nybegynder
19. august 2004 - 16:32 #8
har løst problemet selv
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