Php 在下拉菜单中根据另一个菜单的选定选项设置选项

Php 在下拉菜单中根据另一个菜单的选定选项设置选项,php,html,mysqli,drop-down-menu,Php,Html,Mysqli,Drop Down Menu,下面我有两个下拉菜单。一个从数据库中获取“联盟”列表,另一个从数据库中获取“候选人”列表。我想做的是在第二个下拉菜单中根据第一个菜单中选择的联盟列出候选人。基本上,在第二个下拉菜单中列出/设置同一联盟中的候选人。问题是,我无法首先从“联盟”菜单中获取所选项目,然后使用该值设置第二个项目 这是我的密码: <form action ="includes/admin.users.inc.php" method="POST"> <div style = "display: in

下面我有两个下拉菜单。一个从数据库中获取“联盟”列表,另一个从数据库中获取“候选人”列表。我想做的是在第二个下拉菜单中根据第一个菜单中选择的联盟列出候选人。基本上,在第二个下拉菜单中列出/设置同一联盟中的候选人。问题是,我无法首先从“联盟”菜单中获取所选项目,然后使用该值设置第二个项目

这是我的密码:

<form action ="includes/admin.users.inc.php" method="POST">
    <div style = "display: inline-block;">
    <!-- the coalitions -->

        <select class="form-control" id = "coalition_id" name ="coalition_select" method="POST">
        <option value="" selected disabled>Coalitions</option>
            <?php 
                include_once 'includes/dbh.inc.php';
                $sql_coalition = mysqli_query($conn, "SELECT coalition FROM candidates");
                while ($row = $sql_coalition->fetch_assoc()) {
                    echo "<option value=\"\">" . $row['coalition'] . "</option>";
                }
                global $coalition_select;
                echo $coalition_select = $_POST['coalition_select'];
            ?>
        </select>
    </div>
    <div style = "display: inline-block;">
        <!-- the users -->
        <select class="form-control">
            <option value="" selected disabled>Candidates</option>
            <?php 
                include_once 'includes/dbh.inc.php';
                $sql = mysqli_query($conn, "SELECT username FROM candidates WHERE coalition = '$coalition_select'");
                while ($row = $sql->fetch_assoc()) {
                    echo "<option value=\"owner1\">" . $row['username'] . "</option>";
                }
            ?>
        </select>
    </div>
</form>

联盟
候选人

由于php是服务器端代码,您无法在php部分中获得第一个下拉列表的选定值(对于第二个下拉列表)

要根据第一个下拉列表的选择填充第二个下拉列表,需要使用ajax

对第一个下拉列表ie联盟的“更改”事件执行ajax调用,ajax url应根据ajax参数(联盟选择值)返回候选列表。一旦得到ajax响应,就可以使用JS/Jquery将这些值填入“候选者”下拉列表中

以下是应满足您要求的示例代码:

$(“#联盟id”).change(函数(){

var selected_id=$(this.val()

//应返回候选列表(JSON)的文件路径 格式)用于通过GET方法传递到此url的“联盟”值

var url=“path/to/candidates_file.php?coalition=“+selected_id

//ajax调用

$.get(,函数(json,状态){
$('#candidateselect').empty()

//循环遍历每个值并填写候选下拉列表

$.each(json,函数(i,项){

$(“#候选资格选择”)。附加( $('', { 值:item.owner, 文本:item.username },”)

}))

}))

}))


谢谢你的回答,如果我想删除上述候选人怎么办。是否无法使用php填充第二个列表?您希望在哪个事件/操作上删除候选人?无论何时删除候选对象,都可以执行ajax调用以获取新的候选对象列表