繁体   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