Javascript 使用数据库创建动态下拉列表

Javascript 使用数据库创建动态下拉列表,javascript,php,jquery,Javascript,Php,Jquery,我一直在试图找到一种方法,根据用户在第一个下拉列表中的选择,填充数据库中的第二个下拉列表 到目前为止,这是对我的问题最好、最清楚的回答。虽然我不能让我的工作。(有3个示例要填充下拉列表,您应该检查页面底部的数据库。) 在我的settings.php中有两个下拉列表,正如教程所示,我创建了另一个php文件来打印第二个下拉列表 这是get-dropdown.php: <script>alert("Here")</script> <?php error_reportin

我一直在试图找到一种方法,根据用户在第一个下拉列表中的选择,填充数据库中的第二个下拉列表

到目前为止,这是对我的问题最好、最清楚的回答。虽然我不能让我的工作。(有3个示例要填充下拉列表,您应该检查页面底部的数据库。)

在我的settings.php中有两个下拉列表,正如教程所示,我创建了另一个php文件来打印第二个下拉列表

这是get-dropdown.php:

<script>alert("Here")</script>

<?php
error_reporting(E_ALL); ini_set('display_errors', 1);
$dbConnection = open_connection();

if(isset($_GET['School'])){ $school = mysqli_real_escape_string($dbConnection, $_GET['School']); }

/* This code will print program options from database.
 *
 * If user's program matches with any of the school from database,
 * mark it as "selected" otherwise, use "Select Your Program" as selected.
 *
 * So, "selected" attribute of user's program will overwrite the "selected"
 * attribute of "Select Your Program".
 * */

$query_programs = "SELECT * FROM PROGRAMS WHERE PROGRAM_SCHOOL='$school' ORDER BY PROGRAM_CODE ASC";
$query_users = "SELECT USER_PROGRAM FROM USERS WHERE USER_ID = $user1_id";

$programs_result = mysqli_query($dbConnection, $query_programs) or die(mysqli_error($dbConnection));
$users_result = mysqli_query($dbConnection, $query_users) or die(mysqli_error($dbConnection));

while($data = mysqli_fetch_assoc($users_result)){ $user_program = $data['USER_PROGRAM']; }

foreach($programs_result as $program_result){
    if($user_program == $program_result['PROGRAM_CODE']){
        echo "<option value='$program_result[PROGRAM_CODE]' selected>$program_result[PROGRAM_CODE]</option>";
    }else{
        echo "<option value='$program_result[PROGRAM_CODE]'>$program_result[PROGRAM_CODE]</option>";
    }
}

close_connection($dbConnection);
警报(“此处”)
最终修复(我的解决方案)
1.我有$dbConnection=open_connection();连接数据库,但此函数在另一个文件中定义,连接数据库所需的信息存储在另一个文件中。因此,对于get-dropdown.php,我需要两个文件。这就是我修复db连接的方法。
2.另一个问题是我将学校名称传递给get-dropdown.php,但问题是学校名称包含空格,当您尝试传递get时,这是一个问题。这就是我用来传递获取值的方法。我添加了一个组件

<script>
    $(document).ready(function(){
        $("#school").change(function(){
            $("#program").load("lib/get-dropdown.php?School=" + encodeURIComponent($("#school").val()));
        });
    });
</script>
<script>
    $(document).ready(function(){
        $("#school").change(function(){
            $("#program").load("lib/get-dropdown.php?School=" + encodeURIComponent($("#school").val()));
        });
    });
</script>

$(文档).ready(函数(){
$(“#学校”)。更改(功能(){
$(“#程序”).load(“lib/get dropdown.php?School=“+encodeURIComponent($(“#School”).val());
});
});

这些就是问题所在。如果您试图填充下拉列表,但对javascript一无所知,这是最简单的方法。使用一点jquery,您就可以实现它。

您将一个
mysql\u
函数与
mysqli\u
混合在一起,为什么?另外,变量/GET数组区分大小写,前面(自行车)轮子上的另一根棍子我现在修复了它。我从网站上复制了这部分内容并对其进行了修改。我不知道你在那里。现在已经修好了。但下拉列表仍然不起作用。在打开PHP标记后立即将错误报告添加到文件顶部,例如
@Fred-ii-I编写的School,因为它对我来说非常清晰。这是糟糕的编程实践吗?
<script>
    $(document).ready(function(){
        $("#school").change(function(){
            $("#program").load("lib/get-dropdown.php?School=" + encodeURIComponent($("#school").val()));
        });
    });
</script>