Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Drop-downs mit MySQL-Einträgen füllen

Sie sollten sich Javascript oder jQuery ansehen, um Ihr Ziel zu erreichen. Ich habe jQuery basierend auf meiner früheren Frage an Sie verwendet. Es ist auch einfacher und erfordert weniger Code.

Ihr PHP:

Fügen Sie ein ID-Attribut event_menu hinzu zu Ihrem Auswahlmenü

echo '<select id="event_menu">';
while ($row = mysqli_fetch_assoc($rEvent)) {
        echo '<option value="'.$row['event_id'].'">'.$row['event_name'].'</option>';
}
echo '</select>';

<div id="container_for_new_menu"></div>

Mit jQuery:

$('#event_menu').on('change', function() {
    // get selected value and build data string for AJAX
    var event_selected = "event_selected="+$(this).val();

    // send the selected data to a PHP page to build the populated menu
    $.ajax({
        url : 'populate-menu.php',
        type: 'POST',
        data : event_selected,
        dataType : 'html',
        success : function(data) {
            $('#container_for_new_menu').html(data);
        }, error : function() {
            alert("Something went wrong!");
        }
    });
});

Auf populate-menu.php , haben so etwas wie:

$event_selected = isset($_POST['event_selected']) ? $_POST['event_selected'] : null;

// do SQL query here based on user's selection
// making sure you validate the data in the POST request for malicious BS
// or use parameterized queries

// then build a new menu to send back
echo '<select>';
    // loop through results and build options
echo '</select>';

Dieses neue Menü wird dann wieder auf Ihrer ursprünglichen Seite im container_for_new_menu gepostet Element.