【问题标题】:Populating drop-down based on previous selection根据先前的选择填充下拉列表
【发布时间】:2011-11-04 10:54:54
【问题描述】:

我的 MySQL 表看起来像这样

地区表

id     |   region
-------------------
1      |   Region1
2      |   Region2

...

和学校表

id     |   school
-------------------
1      |   schno1
1      |   schno5
1      |   schno6
2      |   scho120

我的注册表单中有多个选择(下拉)菜单。区域下拉列表如下所示

<select name="region">
<option value="0">Select the 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>

我想要做的是,获取“地区”id,然后根据“学校”表中的 id(先前选择的 id)填充学校下拉菜单。我是js的新手。请帮我修复它。提前谢谢。

【问题讨论】:

    标签: php jquery mysql ajax


    【解决方案1】:

    1) 利用 jQuery 更改事件(绑定到区域选择)
    2) 调用您的 php 脚本,您应该在其中提供基于区域 id 的学校数据
    3) 将数据附加到学校选择

    www 上有很多例子 - http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/

    【讨论】:

    • 我是 js 新手。我想不通。如果可以,请编辑我的代码。
    • 阅读文档,阅读示例,尝试一下。这就是你学会做某事的方式。
    【解决方案2】:
    $region = mysql_real_escape_string($_POST['region']);
    $query = "SELECT s.school FROM regions r 
              INNER JOIN schools s ON (s.region_id = r.id) 
              WHERE r.region LIKE '$region' ";  <<-- LIKE is case insensitive, '=' is NOT 
    $result = $db->query($query);
    if not($result) then { die("error"); }
    while($row=$result->fetch_array(MYSQLI_BOTH))
    {
      echo '<option value="'.$row[0].'">'.$row[1].'</option>';
    }
    

    【讨论】:

    • 这是服务器端部分。以及如何找出客户端部分?
    猜你喜欢
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多