sql >> Databasteknik >  >> RDS >> Mysql

Fyller på rullgardinsmenyn med MySQL-poster

Du bör titta på Javascript eller jQuery för att uppnå ditt mål. Jag har använt jQuery baserat på min fråga till dig tidigare. Det är också enklare och mindre kod.

Ditt PHP:

Lägg till ett ID-attribut event_menu till din valmeny

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>

Använda 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!");
        }
    });
});

populate-menu.php , har något i stil med:

$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>';

Denna nya meny kommer sedan att läggas tillbaka till din ursprungliga sida i container_for_new_menu element.



  1. hur kopierar man data från fil till PostgreSQL med JDBC?

  2. Hitta och ta bort icke-ASCII-tecken från en Oracle Varchar2

  3. mysql parametriserad fråga i ASP.NET

  4. datetime-local värde visas inte på inmatningstaggen