根据第一个下拉列表选择填充 HTML/PHP 下拉列表

2024-02-25

我有 1 个用于类别(食品、饮料等)的下拉菜单

在我的 MySQL 表 (t_menu_category) 中,我有:

+----+---------------+-------------------+----------------------+
| ID | category_name | sub_category_name | category_description |
+----+---------------+-------------------+----------------------+
|  1 | Food          | Curries           | Spicy Curries        |
|  2 | Food          | Meat              | Lamb, Pork, Chicken  |
|  3 | Drinks        | Alcohol           | Fine Tasting Lager   |
|  4 | Desserts      | Cakes             | Chocolate Cake       |
+----+---------------+-------------------+----------------------+

我有第一个下拉列表显示“category_name”的值,但我想要的是当我选择食物时,我希望第二个下拉框更新并仅显示“sub_category_name”的值,其中第一个选择例如“食物”等于数据库中的“食物”。

因此,如果我在第一个下拉框中选择“食物”,第二个下拉框将仅显示“咖喱”和“肉类”。

HTML:

<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>"> 
                  
    <p> 
        <label for="item_name">Item Name</label>
        <input id="item_name" name="item_name" required="required" type="text" placeholder="Item Name" />
     </p>
     <p>
        <label for="item_description">Item Description</label>
        <textarea rows="3" cols="100%" required="required" name="item_description">Item Description</textarea>
    </p>
    <p>
        <label for="item_category">Item Category</label>
        <select id="item_category" name="item_category" required="required">
            <option selected="selected">-- Select Category --</option>
            <?php 
            $sql = mysql_query("SELECT category_name FROM t_menu_category");
            while ($row = mysql_fetch_array($sql)){
            ?>
            
            <option value="<?php echo $row['category_name']; ?>"><?php echo $row['category_name']; ?></option>

            <?php
            // close while loop 
            }
            ?>
        </select>
    </p>

    <p class="center"><input class="submit" type="submit" name="submit" value="Add Menu Item"/></p>
</form>

您可以使用该请求创建一个 PHP 文件并使用 AJAX 调用它。

获取子类别.php

<?php
$category = "";
if(isset($_GET['category'])){
    $category = $_GET['category'];
}

/* Connect to the database, I'm using PDO but you could use mysqli */
$dsn = 'mysql:dbname=my_database;host=127.0.0.1';
$user = 'my_user';
$password = 'my_pass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

$sql = 'SELECT sub_category_name as subCategory FROM t_menu_category WHERE category_name = :category';
$stmt = $dbh->prepare($sql);
$stmt->bindValue(':category', $category);
$stmt->execute();

return  json_encode($stmt->fetchAll());

并添加一些 jquery 来捕获选择类别的情况,并向服务器询问相应的子类别:

<script>
    $(document).ready(function () {
        $('#item_category').on('change', function () {

            //get selected value from category drop down
            var category = $(this).val();

            //select subcategory drop down
            var selectSubCat = $('#item_sub_category');

            if ( category != -1 ) {

                // ask server for sub-categories
                $.getJSON( "getSubCategory.php?category="+category)
                .done(function( result) {    
                    // append each sub-category to second drop down   
                    $.each(result, function(item) {
                        selectSubCat.append($("<option />").val(item.subCategory).text(item.subCategory));
                    });
                    // enable sub-category drop down
                    selectSubCat.prop('disabled', false);                
                });

            } else {                
                // disable sub-category drop down
                selectSubCat.prop('disabled', 'disabled');
            }
        });    

    });
</script>

还可以为您的第一个选项添加一个值:

<option value="-1" selected="selected">-- Select Category --</option>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据第一个下拉列表选择填充 HTML/PHP 下拉列表 的相关文章

  • Angular2:动态同步http请求

    Goal 发出一系列同步 http 请求并能够将它们作为一个可观察流进行订阅 示例 不工作 let query arr test1 test2 test3 function make request query arr if query a
  • ES6 模块范围

    我有代码 lib js var a a export var b b main js console log a a variable is not available in a global scope import b from lib
  • Laravel 5 命名约定

    我对 Laravel 约定有点困惑 因为我是这个框架的新手 我正在关注 Jeffrey Way 他使用的 Laracasts 视频Plural对于控制器名称 E g 页面控制器 卡片控制器 帖子控制器 但如果我参考官方文档Laravel g
  • 如何更改 HTML 文档的“实际编码”?

    我通过 W3C HTML 验证器运行我的网页并收到此错误 编码ascii不是字符的首选名称 使用中的编码 首选名称是 us ascii Charmod C024 第 5 行 第 70 列 内部编码声明 utf 8 不同意 文档的实际编码 u
  • 如何从 CSS 选择器中提取类名?

    故事 我目前正在构建一个 ESLint 规则 以警告在 CSS 选择器定位器中使用引导布局导向和角度技术类 目前我在字符串方法中使用简单的子字符串 for var i 0 i lt prohibitedClasses length i if
  • MySQL如何从多个表中获取数据

    我正在寻找 php MySQL jquery 的帮助 我有2张桌子 table1表 1 有 4 列 id 标题 desc thumb img tabel2表 2 有 3 列 id 表 id img 我只想将 2 个表与 get QS 的值进
  • javascript - 如何获取对象名称或关联数组索引名称?

    我有一个像这样的 JSON 对象 var list name1 element1 value1 name2 element1 value2 如何提取所有 nameX 字符串值 例如 假设我想将它们连接在一个字符串中输出 例如 name1 n
  • Google 地图 API - 地图未显示 - 没有错误

    我正在尝试将地图从 Google API 加载到 div 中 但是 地图未加载 并且没有输出任何错误 这是代码 google maps var geocoder map function codeAddress address geocod
  • Symfony VS CakePHP:哪一个最接近 PHP [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我主要是一名 Rails 开发人员 但有时 我必须使用 PHP 进行编码 因为 stackoverflow com更喜欢可以回答的问题 我想知道
  • 无法访问 WordPress 中声明的全局变量

    我有以下代码 g value something print g value function get value global g value print g value print get value 当我在独立的 PHP 脚本中运行它
  • 当php脚本通过ajax运行时显示进度条

    我有一个通过 ajax 向服务器提交值的表单
  • React Redux - 在辅助函数中访问现有存储

    我试图在反应组件之外获取存储实例 存储状态 即在单独的辅助函数中 我有我的减速器 我的动作 我在最上面的组件中创建了一个商店 configStore js import createStore from redux import gener
  • Google Apps 脚本中 $.ajax() 的服务器端等效项是什么?

    我想在 Google App 脚本中从服务器端代码执行 HTTP 请求Authorization标头 是否有用于发送 HTTP 请求的 App Script API Google Apps 脚本中的这段代码相当于什么 var api URL
  • Three.js点击单个粒子

    In this example http jsfiddle net agqq96bq 2 您可以看到 2 个可点击的粒子 但它们都受到点击的影响 另外 我只想检测粒子上的点击 而不将它们过滤出场景 像这儿 if intersects len
  • 如何跨多个文件跨越 javascript 命名空间?

    我永远忽略了javascript 几年前我开始使用 jQuery 这样我就可以过得去 但随着我开始更多地进行 TDD 我昨天决定真正深入研究 javascript 之后可能还有咖啡脚本 在我的 ASP NET Web 窗体应用程序中 我有很
  • 如何缩短 PHP if 语句?

    我有一个 if 语句 我需要将单个字符串与许多不同的选项进行比较 我在下面发布的代码非常清楚地表明了我的意思 我知道有两种方法可以做到这一点 但另一种甚至更长 那么 是否有任何函数可以以更短的方式实现类似的功能 我的要求可能看起来很愚蠢 但
  • mysql_query 保留返回时在表中创建的数据类型?

    我在mysql中有一个表 CREATE TABLE user id INT name VARCHAR 250 我查询表 result mysql query SELECT id name FROM user 我收集结果 while row
  • 从 jQuery UI 对话框调用 Bootstrap 模式:超出最大调用堆栈大小

    我有一个有点奇怪的问题 我正在调用 Bootstrap Modal 同时打开了 jQuery UI 对话框并且正在获取RangeError Maximum call stack size exceeded 在控制台中 奇怪的是 只有当我在打
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro

随机推荐

  • BlackBerry 线程模型

    我读过很多评论 其中提到 BlackBerry 线程模型偏离了 Java 标准 可能会导致问题 但无论进行多少次谷歌搜索都没有让我明白这到底意味着什么 我一直在为 BlackBerry 开发一个相当大的业务应用程序 尽管我以前没有任何 Ja
  • 通过 Gmail 发送带有自定义方案的链接

    我正在尝试发送打开我的 Android 应用程序的深层链接 String body a href Link to simulation a Intent emailIntent new Intent android content Inte
  • Android 中的默认录音

    我注意到 Android 默认录音机可以感知你的声音有多大在 UI 参数中向您展示 http www androidtapp com wp content uploads 2009 08 OI Shopping Voice Recordin
  • 实际上如何使用 GraphStream 在 swing 中绘制图形?

    我正在尝试实现绘图秋千内的教程图 http graphstream project org doc Tutorials Graph Visualisation 1 1 integrating the viewer in your gui 但
  • 如何创建 Visual Studio Code Python 工作区?

    我正在尝试在 macOS 上的 Visual Studio Code 上设置 Python 我的计算机上安装了 Python 2 7 和 3 5 解释器 当我尝试创建我的第一个 Python 文件时 import未找到模块 根据我看到的各种
  • 从桌面应用程序进行身份验证

    我正在构建一个 Windows 服务 该服务会在某些条件下将文件上传到 Box com 如何在用户不访问网页并输入用户名和密码的情况下进行身份验证 我似乎无法在文档中找到详细信息 thanks 目前 您有两种选择 您可以注册 即时模式 测试
  • 错误 React.Children.only 期望接收单个 React 元素子元素

    不完全确定我的应用程序出了什么问题 我正在使用 create react app 并且尝试将所有组件渲染到相应的根 div 中 问题是 我能够将所有组件渲染到页面上 除了最后一个组件 分数组件 我什至尝试将该组件放入 div 中 但仍然遇到
  • 如何在 OpenGL 中设置文本颜色

    我是 openGL 的新手 想设置文本颜色 尝试了 glColor3f 函数 但它改变了绘图颜色 因为我只想改变文本颜色 我该怎么办 您可以将当前颜色压入属性堆栈 更改颜色 绘制文本 然后弹出堆栈以恢复原始颜色 glPushAttrib G
  • 标记多个日期动态反应原生wix

    我正在使用反应本机日历 一旦标记参数传递给日历对象 该库就提供了在日历上标记日期的能力 我尝试传递一个对象数组 但没有成功发送多个日期 如下所示也不起作用 如何动态标记多个日期呢 var nextDay 2018 06 01 2018 06
  • 如何在 Java 中与两(2)个 SwingWorker 类共享数据

    我有两个 SwingWorker 类 FileLineCounterThread and FileDivisionThread 我将执行这两个线程 当行计数线程完成时 它将结果传递给文件分割线程 我不知道如何将结果传递给启动的线程 impo
  • 将安全性集成到启用 SSL 的 Kafka 1.0

    我无法将安全性集成到启用了 ssl 的 Kafka 1 0 这是我的 server properties 的更改 security inter broker protocol SSL listeners PLAINTEXT localhos
  • 询问用户是否想要重复 python 程序

    这是我现在的代码 我需要询问用户是否想再次重复该程序 我知道你需要在这里使用 while 循环 但我被困住了 userinput eval input Enter the month as a number results userinpu
  • 如何在 MVC3 应用程序中构建 HTML 消息以进行发送?

    我在早上洗澡的时候就在想这个问题 如何在 MVC3 应用程序中构建 HTML 消息 我在想像使用PartialView并调用生成的 HTML 将其保存为字符串以在 HtmlMessage 正文中使用它 而不是做类似的事情 string bo
  • 我可以获得maven执行的测试用例总数吗?

    我有一个 Maven 项目 其中有几个子项目 每个子项目都有自己的测试用例 并且都运行良好 我想知道在父项目上执行的测试用例的数量 无论如何 我可以获得所有执行的测试用例的详细信息吗 甚至测试用例的数量也可以 请分享您的宝贵意见 如果您想一
  • 如何在FileUpload控制器中选择路径后显示图像而不点击

    最近我一直在用 ASP NET c 开发 Web 表单应用程序 我有一个图像控件
  • 如何找到潜在的非空列?

    我正在使用一个 SQL Server 数据库 该数据库的约束非常少 并且想要应用一些非空约束 有没有办法扫描数据库中所有可为空的列并选择哪些列不包含任何空值 甚至更好地计算空值的数量 也许用一点动态 SQL Example Declare
  • GPU - 系统内存映射

    如何映射系统内存 RAM 以供 GPU 访问 我很清楚虚拟内存如何为 cpu 工作 但不确定当 GPU 访问 GPU 映射的系统内存 主机 时 虚拟内存如何工作 基本上与数据如何从系统内存复制到主机内存以及反之亦然有关 您能提供有参考文章支
  • Google Drive via OAuth 发布版本收到 dailyLimitExceededUnreg

    我根本无法克服这一点 错误和相关搜索无法修复它 我来自 Drive Android API 它运行良好 Google 很快就结束了这种情况 不得不切换到 OAuth Drive 实施 不管怎样 几个月来 所有的调试 apk 都 100 正常
  • 未找到组件工厂。您是否将其添加到@NgModule.entryComponents?

    在将 ag grid 与 angular4 一起使用时 我遇到了以下错误消息 我试图通过 HTTP 获取 json 后显示行数据 this gridOptions api setRowData this gridOptions rowDat
  • 根据第一个下拉列表选择填充 HTML/PHP 下拉列表

    我有 1 个用于类别 食品 饮料等 的下拉菜单 在我的 MySQL 表 t menu category 中 我有 ID category name sub category name category description 1 Food