【问题标题】:Auto populate dropdown based on previous selection [duplicate]根据先前的选择自动填充下拉列表[重复]
【发布时间】: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">&nbsp;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


【解决方案1】:

您在没有参数的情况下调用getschools(),因此它什么也不返回。您应该将发出 POST 请求后得到的结果传递给 search.php 文件。

编辑: 我不确定这是否可行,因为我没有先对其进行测试。但我认为你应该改变

  if (src) $.post(src, { region_code: $('#region').val() }, this.getschools);

   if (src) $.post(src, { region_code: $('#region').val() }, function(data){
       getschools(data);
  });

【讨论】:

猜你喜欢
  • 2011-11-04
  • 2015-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多