簡體   English   中英

使用MySQL條目填充下拉列表

[英]Populating drop downs with MySQL entries

我有一個MySQL數據庫,除其他外,其中包含2個表。 一個是events表,包含事件名稱和其他細節。 另一個是instance表。 該表將events表鏈接到venue表並添加日期,因此每一行都是鏈接事件的實例。

我正在為這些事件的內部使用的事件預訂表格。 我想允許通過下拉列表預訂活動。 所以,我有一個人口與下拉事件名稱:

$qEvent = "SELECT event_name, event_id FROM events";
$rEvent = mysqli_query($dbc,$qEvent);

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

我現在想要做的是,所選擇的情況下,抓住所有與該事件相關的實例,並填充日期另一個下拉。

我可以使用PHP來做到這一點,還是需要使用Javascript? 我想我只是需要一些方法來抓住查詢基於該下拉選擇的event_id值,然后,但我不知道怎么沒有JavaScript。

您應該使用Javascript或jQuery實現目標。 我之前根據您的問題使用過jQuery。 它也更簡單,代碼更少。

您的PHP:

將ID屬性event_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>

使用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上 ,具有以下內容:

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

然后,這個新菜單將被放回到container_for_new_menu元素的原始頁面中。

從外觀上看,您想根據用戶在“事件”下拉列表中所做的選擇填充“實例”下拉列表。 沒有Javascript,您將無法做到這一點。

我建議的方法是使用AJAX提取實例數據,並在“事件”下拉列表更改時填充“實例”下拉列表。 以下簡單的AJAX的有用資源可通過jQuery獲得:

http://api.jquery.com/jQuery.get/

http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/

您需要某種Javascript才能完成此任務。 可以:基本-在select上提交表單,然后讓php填充實例下拉列表。 更優雅-使用Javascript在select上進行Ajax調用,它將動態替換實例下拉列表的div。

您將需要JavaScript來填充第二個下拉框。 我建議您將所有值都加載到頁面上的JSON中,然后可以使用jQuery on change事件填充第二個選擇框。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM