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