php - 创建相互依赖的下拉列表

标签 php jquery mysql drop-down-menu mysqli

我正在尝试创建两个相互依赖的下拉菜单。有 2 个表类别和子类别,它们的结构如下

类别表

id  catname
1    A
2    B

子类表
id subcatname  catid
1    S          1
2    T          1
3    U          2

在第一个下拉菜单中,我有类别列表,在第二个下拉菜单中,我有子类别列表。我希望根据在类别下拉菜单中选择的类别显示子类别列表。

index.php 页面上的代码是
<script>
$(document).ready(function(){
    $('#cat').change(function(){

        var catid = $('#cat').val();
        if(catid != 0)
        {
        alert(catid);
            $.ajax({
                type:'post',
                url:'a_fetchsubcat.php',
                data:{id:catid},
                cache:false,
                success: function(returndata){
                    $('#subcat').html(returndata);
                }
            });
        }
    })
})
</script>


<div class="form-group">
    <label class="control-label col-md-3">Category</label>
    <div class="col-md-9">
        <select class="form-control" name="catid" id="cat">
            <option value="">Select a value</option>
            <?
            $sql="SELECT * FROM category";
            $result=mysqli_query($con,$sql);
            if(mysqli_num_rows($result)>0)
                {
                    while($row=mysqli_fetch_assoc($result))
                        {?>
                            <option value="<? echo $row['id'];?>"><? echo $row['catname']; ?></option>
                      <?}
                }?>
        </select>

    </div>
</div>

<div class="form-group">
    <label class="control-label col-md-3">Subcategory</label>
    <div class="col-md-9">
        <select class="form-control" name="subcatid" id="subcat">
            <option></option>
        </select>
    </div>
</div>

a_fetchsubcat.php 上的代码是
<?php
require 'connection.php';
$catid =  $_REQUEST['id']; 

    $sql = "SELECT * FROM subcategory where catid='".$catid."'";
    $result = mysqli_query($con, $sql);
    if (mysqli_num_rows($result) > 0) 
        {
            while($row = mysqli_fetch_assoc($result)) 
                {
                    $subcatname=$row["subcatname"];
                    $subcatid=$row["id"];
?>
<option value="<? echo $subcatid;?>"><? echo $subcatname;?></option>
                  <?}
            }
        else
            {?>
                <option value="">No sub category </option>
            <?}?>

我的问题是,从第一个下拉列表中选择类别后,我无法显示子类别。

最佳答案

您的代码似乎没问题,请确保将 jquery 链接放在脚本代码之前

关于php - 创建相互依赖的下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30481378/

相关文章:

php - 比较同一域的两个字符串(url)

PHP 获取所有函数参数作为 $key => $value 数组?

php - 将数据从本地 MySQL 服务器加载到 Phonegap 应用程序

Mysql查询查找与另一行具有相同值的所有行

javascript - 使用多维数组 javascript 处理 Web 服务响应

php - 将功能更改为 PDO

javascript - 如何在不滚动的情况下显示 html5 验证消息?

javascript - 用javascript将一个HTML节点分割为多个节点

android - 如何让SQL安全插入?

android - SQLite LIKE 选择不起作用