Bạn nên xem xét Javascript hoặc jQuery để đạt được mục tiêu của mình. Tôi đã sử dụng jQuery dựa trên câu hỏi của tôi với bạn trước đó. Nó cũng đơn giản hơn và ít mã hơn.
PHP của bạn:
Thêm thuộc tính ID event_menu
vào menu lựa chọn của bạn
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>
Sử dụng 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!");
}
});
});
Trên populate-menu.php , có một cái gì đó như:
$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>';
Sau đó, menu mới này sẽ được đưa trở lại trang gốc của bạn vào container_for_new_menu
phần tử.