Avatar billede mazey Praktikant
22. marts 2005 - 00:02 Der er 8 kommentarer og
1 løsning

List menu med udtræk fra database

Hej Eksperter...

Jeg vil lave en form i php, hvor udtrækket til formene afhænger af hvad der er valgt i list menuerne:

ex.
vælges "a" i første list menu, kommer der "b" i den næste.
Her er det med en database...

Koden er her:

<form method="post" action="<? echo "$PHP_SELF "; ?>"  >
<input type="hidden" name="show" value="user_post">
<input type="hidden" name="mainkategori" value="<?=$mainkategori?>">
<table >
    <tr>
        <td width="138" align="left"><span class="style2">Product Group:</span></td>
        <td width="162" align="left"><select name="group" class="style2">
        <option value="0">---- SELECT ----</option>
        <option value="1">Is</option>
        <option value="2">Slik</option>
                </select></td>
    </tr>
<tr>
        <td width="138" align="left"><span class="style2">Buy / Sell</span></td>
        <td width="162" align="left"><select name="sell" class="style2">
        <option>--Select--</option>
          <option value="1"></option>
          <option value="2"></option>
        </select></td>
    </tr>

</table>

Så er det så meningen at ud fra valget mellem is og slik at der skal trækkes data fra databasen som så skal vises i næste list menu (sell)

Min idé er gået på noget if sætning værk, men det har ikke fungeret... nok fordi jeg ikke er så hård til det!

Er der nogen der kan hjælpe?
Avatar billede Slettet bruger
22. marts 2005 - 00:20 #1
Hvis du vil gøre det med det samme du vælger is eller slik i menuen skal du have den til at opdatere den anden select med javascript. Hvis den første select allerede er valgt eks. via et udtræk fra database kan du lave en if som lyder:
if ($firstselect == 1) {
//her laver den så udtræk hvis den er is
}
elseif ($firstselect == 2) {
//her laver den så udtræk hvis den er slik
}

Ret mig endeligt hvis jeg er forkert på den, det er blot min løsning på det af hvad jeg har fået af informationer...
Avatar billede mazey Praktikant
22. marts 2005 - 00:27 #2
Altså den første option select vil være noget der er skrevet, altså ikke et udtræk. men afhængigt af hvad man vælger dér skal den næste option select box ændre sig.
Hvis man f.eks. vælger is i den første skal den sige noget lignende
$res = mysql_query("SELECT * FROM kategori WHERE mainkategori = 1 ");
while( $kategori = mysql_fetch_row($res) )
        {
            echo"<option>$kategori[1]</option>";
        }
Du snakker om javascript, hvilket jeg bestemt heller ikke er inde i! :)


Kan man lave noget lignende det jeg har lavet nu!? -Hvor man så bare kan tilføje det javascript et sted!? :)
Avatar billede mazey Praktikant
22. marts 2005 - 00:33 #3
Det her er hvad jeg har forsøgt mig med, men uden held... måske jeg "bare" mangler det javascript!?


<tr>
        <td width="138" align="left"><span class="style2">Product Group:</span></td>
        <td width="162" align="left"><select name="group" class="style2">
        <option value="0">---- SELECT ----</option>
        <option value="1">is</option>
        <option value="2">slik</option>
       
        </select></td>
    </tr>
   
    <tr>
        <td align="left"><span class="style2">Product Subgroup</span></td>
        <td align="left"><select name="sub" class="style2">
        <option value="0">---- SELECT ----</option>
        <?
        if ($group == 1){
        $res = mysql_query("SELECT * FROM kategori WHERE mainkategori = 1");
        while( $land = mysql_fetch_row($res) )
        {
            echo"<option>$land[2]</option>";
        }
        }elseif ($group == 2){
        $res = mysql_query("SELECT * FROM kategori WHERE mainkategori = 2");
        while( $land = mysql_fetch_row($res) )
        {
            echo"<option>$land[2]</option>";
        }
       
        }
        ?>
       
        </select></td>
    </tr>
Avatar billede Slettet bruger
22. marts 2005 - 00:36 #4
Det kan godt virke men du skal jo bare reloade siden før at $group kan blive sat. Og en anden god ide ville være at sætte en else på din if og elseif statement hvis $group ikke er sat.
Avatar billede mazey Praktikant
22. marts 2005 - 00:37 #5
Ja ok... men hvordan reloader jeg lige siden så!? :)
Avatar billede mazey Praktikant
22. marts 2005 - 00:58 #6
Skal jeg bruge javascript til den!?
Jeg har prøvet at teste med at sætte værdien i select boxen group til "1", men det gør ikke at den vælger noget i næste boks....
Lidt et problem som haster... håber ikke alle er gået i seng! :)
Avatar billede sukos Juniormester
22. marts 2005 - 03:03 #7
Noget a'la dette:


<?php
function selected($var, $value) {
if(isset($_GET[$var]) && $_GET[$var] == $value) {
echo" selected";
}
}
?>
<form method="get" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<select name="group" class="style2" onchange="if(this.value != ''){ this.form.submit();}">
<option value="">---- SELECT ----</option>
<option value="1"<?php selected("group", 1); ?>>is</option>
<option value="2"<?php selected("group", 2); ?>>slik</option>
</select>
<?php
if(isset($_GET["group"])) {
?>
<p>
$res = mysql_query("SELECT * FROM kategori WHERE mainkategori = '". $_GET["group"] ."'");
</p>
<select name="sub" class="style2" onchange="if(this.value != ''){ this.form.submit();}">
<option value="">---- SELECT ----</option>
<option value="sub_1"<?php selected("sub", "sub_1"); ?>>sub 1</option>
<option value="sub_2"<?php selected("sub", "sub_2"); ?>>sub 2</option>
</select>

<?php
}
?>

</form>
Avatar billede mazey Praktikant
22. marts 2005 - 12:43 #8
Hmm... Ja, det tror jeg på en måde det er! :)

Dog kan jeg ikke helt få den til at virke, men grunden til at jeg skriver på en måde, er at som jeg kan se det, så har den først en menu, og når man vælger noget i den skulle der komme en ny menuboks frem.
Meningen er at alle bokse skal kunne ses fra start, men ændre sig løbende som der bliver valgt kriterier i de ovenstående. Er det så Javascript, eller kan det laves i PHP!? -Hvis det er javascript har jeg fundet et sådant script, men jeg kan ikke få den til at bruge php inden i det, så jeg kan trække data fra databasen!

:)
Avatar billede mazey Praktikant
15. juni 2005 - 15:48 #9
Har fået problemet løst... fik en kammerat til at hjælpe mig med at lave det i Javascript...

Ellers mange 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