Drop Down Menu optionen

  • Hallo zusammen,

    weiß jemand von euch evtl. wie ich die Daten aus einem Drop Down menü in ein anderes Laden kann also etwa so:

    1. Menü: Kotinent
    2. Menü: Länder

    Das bei der Auswahl eines Kontinents nur die Länder im 2ten Menü erscheinen die es auch auf diesem Kontinent gibt ?

    MFG clark_039

    P.S: Sry für diese kompi. Formulierung ^^

  • Dazu musst du dir ein bisschen JavaScript anlernen. Schlussendlich musst du einen Eventhandler fuer das onChange-Ereignis der ersten Dropdown (<select>)-Box schreiben, der die Optionen der zweiten Dropdown-Box veraendert (die Kontinente und ihre Laender wirst du z.B. in einem Array gespeichert haben).

  • Also wenns interessiert ich habs jetzt so gelöst und es läuft perfekt.

    <form name="continent" id="con_menu">
    Continent
    <select name="con" onChange="document.getElementById('con_menu').submit()">
    <?php
    $con = (int)$_GET['con'];
    $DatabasePointer = mysql_connect("localhost", "user", "pwd");
    mysql_select_db("db", $DatabasePointer);
    $SQL2 = "SELECT * FROM continent";
    $result2 = mysql_query($SQL2, $DatabasePointer);
    echo '<option value="0" '.($con==0?'selected="selected"':'').'>All</option>';

    while ($row2 = mysql_fetch_assoc($result2)) {
    echo '<option value="'.$row2['id'].'" '.($con==$row2['id']?'selected="selected"':'').'>'.htmlentities($row2['continent']).'</option>';
    }
    mysql_free_result($result2);
    ?>
    </select>
    </form>

    <!-- Auswahl Land -->
    <form name="country" id="cou_menu">
    <input type="hidden" name="con" value="<?=$con?>" />
    Country
    <select name="cou" onChange="document.getElementById('cou_menu').submit()">
    <?php
    $cou = (int)$_GET['cou'];
    $SQL3 = "SELECT * FROM country WHERE country.continent=$con";
    $result3 = mysql_query($SQL3, $DatabasePointer);
    echo '<option value="0" '.($cou==0?'selected="selected"':'').'>All</option>';

    while ($row3 = mysql_fetch_assoc($result3)) {
    echo '<option value="'.$row3['id'].'" '.($cou==$row3['id']?'selected="selected"':'').'>'.htmlentities($row3['country']).'</option>';
    }
    mysql_free_result($result3);
    ?>
    </select>
    </form>

    <!-- Auswahl Stadt -->
    <form name="city" id="cit_menu">
    <input type="hidden" name="con" value="<?=$con?>" />
    <input type="hidden" name="cou" value="<?=$cou?>" />
    City
    <select name="cit" onChange="document.getElementById('cit_menu').submit()">
    <?php
    $cit = (int)$_GET['cit'];
    $SQL4 = "SELECT * FROM cities WHERE cities.country=$cou";
    $result4 = mysql_query($SQL4, $DatabasePointer);
    echo '<option value="0" '.($cit==0?'selected="selected"':'').'>All</option>';

    while ($row4 = mysql_fetch_assoc($result4)) {
    echo '<option value="'.$row4['id'].'" '.($cit==$row4['id']?'selected="selected"':'').'>'.htmlentities($row4['city']).'</option>';
    }

    mysql_free_result($result4);
    ?>
    </select>
    </form>

    MFG clark_039

  • Und wer soll sich je diese völlig unübersichtliche HTML-/PHP-Mischung ansehen?

  • Wenn irgendjemand auch mal sowas vor hat wie könnte sie ihm evtl. helfen, ich hätte gerne noch bei meinem Post [code=html] in [code=php] geändert.

    Sorry wenn mein Post für euch unübersichtlich ist...

    MFG clark_039

  • Hab kurz druebergeschaut, scheint OK zu sein. Nicht so guenstig ist es allerdings, dass bei jeder Aenderung der Dropdown-Auswahl die gesamte Seite neu geladen wird und auch Datenbankabfragen durchgefuehrt werden. Idealerweise wuerdest du die Daten nur einmal auslesen und im Speicher halten; JavaScript koennte dann auf die Auswahlaenderung "live" reagieren und fertig. Der Code ist mir jetzt aber ein bissl zu anstrengend um ihn aufzuschreiben... fuers Erste reicht auch deine Loesung. :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!