首先,我想说有很多像这样的问题,这是一个重复的问题,但我试着通过查看其他代码自己做,但我在1小时后就放弃了 .
我想要做的是根据另一个下拉列表中的选择填充下拉列表,但两个下拉列表的选项都来自数据库 .
我不知道jQuery,我也看到有些人使用onChange函数来做我需要做的事情 .
所以,我想解释一下我的问题 . 我有2个下拉菜单 . 其中一个包含学校名称,另一个包含课程代码 . 我需要做的是,我想根据你选择的学校显示课程代码 . 因为每所学校都有自己的课程 .
这是第一次下拉 . foreach循环可能看起来令人困惑 . 我只是回应选项,但如果用户已选择学校,我会选择回应用户的学校 . 这就是我在那里发表其他声明的原因 .
$query_schools = "SELECT * FROM SCHOOLS ORDER BY SCHOOL_TYPE ASC";
$query_users = "SELECT USER_SCHOOL FROM USERS WHERE USER_ID = $user1_id";
$schools_result = mysqli_query($dbConnection, $query_schools);
$users_result = mysqli_query($dbConnection, $query_users);
while($data = mysqli_fetch_assoc($users_result)){ $user_school = $data['USER_SCHOOL']; }
foreach($schools_result as $school_result){
if($user_school == $school_result['SCHOOL_NAME']){
echo "<option value='$school_result[SCHOOL_SHORT_NAME]' selected>$school_result[SCHOOL_NAME]</option>";
}else{
echo "<option value='$school_result[SCHOOL_SHORT_NAME]'>$school_result[SCHOOL_NAME]</option>";
}
}
这是第二次下降,它们是相似的 .
$query_programs = "SELECT * FROM PROGRAMS ORDER BY PROGRAM_CODE ASC";
$query_users = "SELECT USER_PROGRAM FROM USERS WHERE USER_ID = $user1_id";
$programs_result = mysqli_query($dbConnection, $query_programs);
$users_result = mysqli_query($dbConnection, $query_users);
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]' title='$program_result[PROGRAM_NAME]' selected>$program_result[PROGRAM_CODE]</option>";
}else{
echo "<option value='$program_result[PROGRAM_CODE]'>$program_result[PROGRAM_CODE]</option>";
}
}
如果它是纯PHP,我可以这样做第一个查询:
$query_programs = "SELECT * FROM PROGRAMS WHERE PROGRAM_SCHOOL = '$user_school' ORDER BY PROGRAM_CODE ASC";
谢谢您的帮助 .
4 回答
我对
php
服务器端编码不是很确定,但我可以告诉你如何从ajax
获得负载数据 .假设你有2以下
select
现在更改第一个下拉列表
.school
执行ajax调用,如下所示:在Stackoverflow上有一个附有jsfiddle的例子:Populate one dropdown list based on the selection of other dropdown list
它的工作原理是创建一个已填充的选择和一个EMPTY选择:
第一个选择(Id = cat)附加了一个函数,它基本上是jquery的“onChange”方式:
所以每当你改变(即选择“id = cat”选择框的另一个项目时,它会调用下一个函数,然后使用新的“<option .... option>”值填充另一个选择框“id = item”:
当您在OPTION语句中回显时,为每种类型的课程代码提供唯一值,并在第二个选择框中为每个选项提供匹配的类 .
选择框1将具有:
然后一定要给第二个选择框提供一个ID,显示更改值:
对于jQuery,您可以只显示其中一个OPTION类型,用css隐藏其余部分,并在更改选项时使用此命令隐藏/显示其他列表 .
这是未经编码的代码,在黑暗中刺伤 . 沿着这些方向的东西将完成它 .
我使用javascript实现了相同的功能 . 在我的情况下,输入是json . 您可以将输入传递给onchange函数调用或在函数中使用ajax .
HTML
使用Javascript
JSFiddle Demo