sql >> Database >  >> RDS >> Mysql

Vervolgkeuzelijsten vullen met MySQL-vermeldingen

Je zou naar Javascript of jQuery moeten kijken om je doel te bereiken. Ik heb jQuery gebruikt op basis van mijn vraag aan jou eerder. Het is ook eenvoudiger en minder code.

Uw PHP:

Voeg een ID-kenmerk toe event_menu naar uw keuzemenu

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>

JQuery gebruiken:

$('#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!");
        }
    });
});

Op populate-menu.php , heb zoiets als:

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

Dit nieuwe menu wordt vervolgens teruggeplaatst op uw oorspronkelijke pagina in het container_for_new_menu element.



  1. Selecteer mySQL alleen op basis van maand en jaar

  2. Hoe op te lossen Geen query in datareader-fout?

  3. Is het een goed idee om MySQL en Neo4j samen te gebruiken?

  4. Hoe gebruik je een BIGINT als een automatisch oplopende primaire sleutel in Laravel 4