Javascript 使用AJAX、PHP和MYSQL填充依赖下拉列表
我试图根据id='classes'的另一个下拉列表的值,用id='gymnasts'填充一个下拉列表 我知道我必须使用AJAX,但是在完成了多个不同的教程之后,我似乎无法让前面提到的第二个下拉菜单显示任何选项 我的代码如下: reports.php:Javascript 使用AJAX、PHP和MYSQL填充依赖下拉列表,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我试图根据id='classes'的另一个下拉列表的值,用id='gymnasts'填充一个下拉列表 我知道我必须使用AJAX,但是在完成了多个不同的教程之后,我似乎无法让前面提到的第二个下拉菜单显示任何选项 我的代码如下: reports.php: <script> function getGymnasts(val){ alert('gets'); $.ajax({ type:"POST", url:"ajax_populate.ph
<script>
function getGymnasts(val){
alert('gets');
$.ajax({
type:"POST",
url:"ajax_populate.php",
data: 'classid='+val,
success: function(data){
$("$gymnasts").html(data);
}
});
}
</script>
<form method="post">
<table>
<tr><td>Select Class:</td><td><select id="classes" onChange="getGymnasts(this.value)" placeholder="Select Class" required/>
<?php $classes = mysqli_query($GLOBALS['link'], "SELECT * FROM classes;");
foreach($classes as $class){
echo('
<option value="'.$class['id'].'">'.$class['level'].'</option>
');
}?>
</select></td></tr>
<tr><td>Select Gymnast:</td><td>
<select id="gymnasts" placeholder="Select Gymnast" required/>
</select></td></tr>
<tr><td>Report:</td><td><textarea name="body" cols="60" rows="20" placeholder="Report text" required/></textarea></td></tr>
<tr><td>Progression Grade:</td><td><input type="text" name="progression" placeholder="A" required/></td></tr>
<tr><td>Effort Grade:</td><td><input type="text" name="effort" placeholder="A" required/></td></tr>
<tr><td></td><td><input type="submit" name="saveReport" value="Save"><input type="submit" name="savesendReport" value="Save and Send"></td></tr>
</table>
</form>
功能体操运动员(val){
警报('gets');
$.ajax({
类型:“POST”,
url:“ajax_populate.php”,
数据:“classid=”+val,
成功:功能(数据){
$(“$gymnasts”).html(数据);
}
});
}
选择类别:
您对体操运动员的id使用了错误的选择器,请在成功回调中使用#
而不是$
success: function(data){
$("#gymnasts").html(data);
// ^ change $ to # here
}
此外,如果未找到结果,请选择一个选项
else{$msg .="<option>No Gymnasts were found!</option>";}
else{$msg.=“没有找到体操运动员!”;}
尝试使用以下函数代替函数html()
:.append($(数据))代码>。请记住,当没有找到体操运动员时,您的代码会产生一些无意义的结果!此外,你必须用$(“#gymnasts”)
来选择你的体操运动员选择列表,而不是$(“$gymnasts”)
这可能比较老,但这是一个更好的版本,你可以这样做。谢谢大家!+代表!
else{$msg .="<option>No Gymnasts were found!</option>";}