Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wypełnianie list rozwijanych wpisami MySQL

Powinieneś patrzeć na Javascript lub jQuery, aby osiągnąć swój cel. Użyłem jQuery w oparciu o moje wcześniejsze pytanie. Jest to również prostsze i mniej kodu.

Twój PHP:

Dodaj atrybut identyfikatora event_menu do wybranego menu

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>

Korzystanie z 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!");
        }
    });
});

Na populate-menu.php , mieć coś takiego:

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

To nowe menu zostanie następnie umieszczone z powrotem na oryginalnej stronie w container_for_new_menu element.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BLOB w widoku MySQL zamiast właściwych danych

  2. Funkcje zdefiniowane przez użytkownika MySQL

  3. Podziel dane na 3 kolumny

  4. Wydajność UDF w MySQL

  5. łącz tabele i transponuj kolumny i wiersze