2 Stimmen

Der beste Weg, dyanmische Pop-up-Menüs zu erstellen

Ich habe eine Terminplanungsseite, die einen Wochenplan (Sonntag bis Samstag) anzeigt.

Die Art und Weise, wie ich Mitarbeiter zu diesem Zeitplan hinzufügen möchte, besteht aus einer Reihe von Popup-Menüs, die sich je nach den ausgewählten Werten ändern.

Zum Beispiel wird das erste Menü Jobs sein mit <option> Werte, die aus der Tabelle "Jobs" in meiner Datenbank übertragen werden.

Angenommen, ein Benutzer wählt im Popup-Menü "Jobs" die Option "Kochen". Im nächsten Menü "Mitarbeiter" werden alle Mitarbeiter aus der Mitarbeitertabelle angezeigt, die den Stellencode "Koch" haben. So werden mir alle Köche angezeigt, die an diesem Tag verfügbar sind.

Wie erstellt man am besten eine Reihe von Menüs wie dieses?

Für Links zu hochwertigen Anleitungen wären wir dankbar.

1voto

rogeriopvl Punkte 46915

Sie können dies mit Javascript/AJAX tun. Der Benutzer wählt eine Option aus dem ersten Menü, und das nächste Menü aktualisiert die Optionen automatisch mit einer Anfrage an den Server, die die im ersten Menü gewählte Option sendet.

Dies kann auf die folgende Weise mit jQuery geschehen, was ich sehr empfehle, um verschiedene Browserprobleme zu vermeiden. Dies ist unvollständig, sollte Ihnen aber einen großen Vorsprung verschaffen:

HTML

<select id='jobs_menu' name='job'>
    <option>Cook</option>
    <option>Waiter</option>
</select>

<select id='employees_menu' name='employees'>
    <option>John Doe</option>
    <option>Doe John</option>
    <option>Everyone else</option>
</select>

Javascript / jQuery

$(document).ready(function(){

    $('#jobs_menu').change (function () {

        //ajax call
        $.get('http://yourscript.com/script.php', { job: $('#jobs_menu').val() },      
            function () {
                //parse the json and fill the #employees_menu with the results
            });
    });    
});

PHP

if (isset ($_GET['job']))
{
    $names  = array ();
    $job = mysql_real_escape_string ($_GET['job']);
    $res = mysql_query ("SELECT name FROM Employees WHERE job='$job'");

    while ($row = mysql_fetch_assoc ($res))
    {
        $names[] = $row['name']; 
    }

    echo json_encode ($names);
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X