【发布时间】:2011-11-05 08:43:44
【问题描述】:
可能重复:
How to dynamically populate options on dropdown lists based on selection in another dropdown?
我的 MySQL 表看起来像这样
地区表
id | region
-------------------
1 | Region1
2 | Region2
...
和学校表
id | school
-------------------
1 | schno1
1 | schno5
1 | schno6
2 | scho120
我的注册表单中有多个选择(下拉)菜单。区域下拉列表如下所示
<td>
<select name="region" id="region">
<option value="">Region</option>
<?php
$result=$db->query("SELECT * FROM regions");
while($row=$result->fetch_array(MYSQLI_BOTH))
{
echo '<option value="'.$row[0].'">'.$row[1].'</option>';
}
?>
</select>
</td>
<td>
<div id="sch_dropdown">
<select name="school" id="school">
<option value="">School</option>
</select>
</div>
<span id="loading"><img src="core/design/img/jquery-ui/loading.gif" width="16" height="16" align="absmiddle"> Loading...</span>
<div id="no_sch">No schools found</div>
</td>
我想根据之前的选择填充新的下拉列表。我想做的是,获取“地区”ID,然后根据“学校”表中的ID(先前选择的ID)填充学校下拉菜单。这是我的代码,但它不起作用。
我的 js 是这样的
$(document).ready(function(){
function populate() {
fetch.doPost('core/code/includes/search.php');
}
$('#region').change(populate);
var fetch = function() {
var schools = $('#schools');
return {
doPost: function(src) {
$('#loading').show();
$('#sch_dropdown').hide();
$('#no_sch').hide();
if (src) $.post(src, { region_code: $('#region').val() }, this.getschools);
else throw new Error('No SRC was passed to getCounties!');
},
getschools: function(results) {
if (!results) return;
schools.html(results);
$('#loading').hide(); // Hide the Loading...
$('#sch_dropdown').show(); // Show the drop down
}
}
}();
populate();
});
和search.php
if(isSet($_POST['region_code'])) {
$res=$db->query("SELECT * FROM schools WHERE id='".$_POST['region_code']."'");
while ($row = $res->fetch_array(MYSQLI_BOTH)) {
echo '<option value="'.$row[0].'">'.$row[1].'</option>';
}
}
请帮我完成它。提前谢谢。
【问题讨论】:
-
@Tural Teyyuboglu 看看我编辑的答案
-
请任何人帮助我让它工作
标签: php jquery forms select drop-down-menu