根据下拉列表选择从数据库填充另一个选择下拉列表

2023-11-30

我正在构建一个网站来学习编码,并尝试构建一个工具,用户可以在其中单击包含从数据库中提取的一些类别名称的选择/下拉菜单cat然后将出现另一个选择,其中包含从数据库中提取的子类别名称subcat。这几乎和 Yelp 的一模一样(进入类别)就像 Yelp 的一样(进入类别).

我还做了一个图:

enter image description here

我已经有一个类别下拉列表,来自cat数据库:

<p><b>Category:</b><br />
 <?php
  $query="SELECT id,cat FROM cat";
  $result = mysql_query ($query);
  echo"<select name='cselect3' class='e1'><option value='0'>Please Select A       Category</option>";
  // printing the list box select command
  while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
  echo "<option value=\"".htmlspecialchars($catinfo['cat'])."\">".$catinfo['cat']."    </option>";

  }

echo"</select>";
?>

我有一个从子目录数据库中提取的子目录:

<p><b>Subcat1:</b><br />
<?php
  $query="SELECT id,subcat FROM subcat";
  $result = mysql_query ($query);
  echo"<select name='sselect1' class='e1'><option value='0'>Please Select A Category</option>";
  // printing the list box select command
  while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
      echo "<option value=\"".htmlspecialchars($catinfo['subcat'])."\">".$catinfo['subcat']."</option>";

  }

 echo"</select>";
?>

如何根据用户单击类别的内容制作子类别下拉列表并使其自动显示? 非常感谢您的任何帮助!


我只是用 php 将变量放入 javascript 中,然后使用 javascript 函数..不需要 jquery 或 AJAX。

然而,无论如何你都需要有一个子类别的外键..即-对于 subcat 表中的每条记录,你需要给它一个 catid 以便引用......

<?php
  $db = new mysqli('localhost','user','password','dbname');//set your database handler
  $query = "SELECT id,cat FROM cat";
  $result = $db->query($query);

  while($row = $result->fetch_assoc()){
    $categories[] = array("id" => $row['id'], "val" => $row['cat']);
  }

  $query = "SELECT id, catid, subcat FROM subcat";
  $result = $db->query($query);

  while($row = $result->fetch_assoc()){
    $subcats[$row['catid']][] = array("id" => $row['id'], "val" => $row['subcat']);
  }

  $jsonCats = json_encode($categories);
  $jsonSubCats = json_encode($subcats);


?>

<!docytpe html>
<html>

  <head>
    <script type='text/javascript'>
      <?php
        echo "var categories = $jsonCats; \n";
        echo "var subcats = $jsonSubCats; \n";
      ?>
      function loadCategories(){
        var select = document.getElementById("categoriesSelect");
        select.onchange = updateSubCats;
        for(var i = 0; i < categories.length; i++){
          select.options[i] = new Option(categories[i].val,categories[i].id);          
        }
      }
      function updateSubCats(){
        var catSelect = this;
        var catid = this.value;
        var subcatSelect = document.getElementById("subcatsSelect");
        subcatSelect.options.length = 0; //delete all options if any present
        for(var i = 0; i < subcats[catid].length; i++){
          subcatSelect.options[i] = new Option(subcats[catid][i].val,subcats[catid][i].id);
        }
      }
    </script>

  </head>

  <body onload='loadCategories()'>
    <select id='categoriesSelect'>
    </select>

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

根据下拉列表选择从数据库填充另一个选择下拉列表 的相关文章

  • 是否有任何理由使用 axios 而不是 ES6 fetch [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 研究了 axios 和 ES6 fetch 的文档 我发现两者非常相似 并且都受到 ajax 及其简写的强烈影响 axios 的主要优点是浏览器
  • PHP、PDO 和 SQLSRV 对一个 INSERT 语句执行多次

    我已经在 MySQL 和 Apache 服务器上使用 PDO 和 PHP 一段时间了 我最近的任务是将企业的旧 Web 应用程序转换为新设置 旧设置是标准 Linux Web 堆栈 Apache PHP MySQL Filezilla 新设
  • Twitch API - 无法使用 PHP 获取身份验证令牌

    stackoverflow 的成员们大家好 我不是一个喜欢寻求帮助的人 但在这种情况下 我认为这是解决我的问题的唯一方法 谷歌并没有给我太大帮助 所以 我的问题 我想使用 Twitch API 获取一些数据 听起来很容易 我希望是这样 下面
  • 替换img路径jquery

    我正在尝试替换 jquery 中的 img 路径 注入远程页面 replaceexample com thumbs withexample com images 我已经尝试过这个 但似乎不起作用 img attr src replace t
  • zend框架验证模型中的数据而不是表单中的数据

    使用 Zend Framework 2 在我的应用程序中 要编辑数据库中的数据 可以编译 html 表单或发送 http post 请求 我的服务器作为 Web 服务实现 在第二种情况下 不会呈现表单 问题 如果当服务器收到不是从表单发送而
  • 为什么Promise中的代码会同步执行? [复制]

    这个问题在这里已经有答案了 在我的项目中 我有一个很长时间运行的操作 所以我决定将其放入Promise因为我认为这样我就可以在里面的代码继续执行其他操作Promise正在跑步 调试的时候发现外面的代码Promise仅当里面的代码执行Prom
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • 为某个时刻添加持续时间 (moment.js)

    时刻版本 2 0 0 阅读文档后 http momentjs com docs manipulating add 我认为这很简单 Chrome 控制台 var timestring1 2013 05 09T00 00 00Z var tim
  • 如何将焦点设置在 BootStrap 中的第一个输入字段上? [复制]

    这个问题在这里已经有答案了 可能的重复 如何将焦点设置到独立于 id 的 HTML 表单中的第一个输入元素 https stackoverflow com questions 277544 how to set the focus to t
  • 如何将路径添加到 Apache PATH 变量?

    我在 apache2 的 custom conf 文件中设置了以下内容 SetEnv PATH PATH opt local lib mysql5 bin this is a test 但是它不起作用 当我打电话时 hey shell ex
  • PHP 搜索部分字符串

    如何在键入时搜索部分字符串 不使用 MySQL 例如 MySQL 中的 LIKE 函数 但在搜索字符串时使用 PHP 例如 但这显然行不通 但是有没有一个函数可以搜索部分字符串 那太好了 EDIT 如果它在数组中怎么办 如果我使用 strp
  • NodeJS - 将相对路径转换为绝对路径

    In my 文件系统我的工作目录在这里 C temp a b c d 在 b bb 下有文件 tmp txt C temp a b bb tmp txt 如果我想从工作目录转到该文件 我将使用以下路径 bb tmp txt 如果该文件不存在
  • Sublime Text 编辑器中的 PHP 语法检查

    在Gedit中 我可以在当前文档上添加 php l 外部工具 如果我安装了PHP命令行 它将对文档进行语法检查 有没有办法用 Sublime Text 编辑器来做到这一点 注意 我有一台 Mac 并且安装了 PHP CLI 我想我必须将代码
  • 等待异步 grunt 任务完成

    我收到了 grunt 设置 其中一个新任务应该执行 grunt task run 已经存在的任务 要执行的任务是异步的 新任务应该等待异步任务完成 执行此操作的首选方法是什么 grunt 已经涵盖了这一点 你应该将你的任务声明为异步任务 并
  • 为什么浏览器允许onmousedown JS改变href?

    我很长时间以来都注意到 当您尝试复制链接位置或在 Facebook 上打开链接时 它会修改链接并将其传递给l php 例如 我可以被发送到 http www facebook com l php u http 3A 2F 2Fwww goo
  • WebpackError:ReferenceError:Gatsby 上未定义窗口

    我已经在互联网上进行了大量搜索 但无法解决这个问题 我正在使用 Gasby 开发静态页面 但遇到此错误 WebpackError ReferenceError window is not defined 我的线索是 这与我正在使用的引导 模
  • 在 Elasticsearch php API 中使用多种类型或索引

    我想使用查询多种类型和索引Elasticsearch PHP API 但我不知道怎么办 我应该将类型和索引的数组传递给 params params index index array of indices params type types
  • HTML5 地理定位 - 在 iOS 上无法始终工作

    目前正在使用 HTML5 地理定位 我已经在所有网络浏览器上测试了它 它似乎工作正常 然而 当我在 iPad 上测试地理定位时 它在 iPad mini 上始终有效 但当我将其放在更大的 iPad iPad 2 上时 位置似乎并不总是有效
  • SimpleXML 返回空数组

    我正在尝试使用 Google Maps API 和 PHP SimpleXML 获取城市的纬度和经度 我尝试这样做 xml simplexml load file http maps googleapis com maps api geoc
  • 拉斐尔路径交叉点不起作用

    我对拉斐尔和 pathIntersection method JSFiddle 示例 http jsfiddle net t6gWt 2 您可以看到有两条线都与曲线相交 但当我使用 pathIntersection method 有一个未解

随机推荐

  • 属性和多态性

    我有两节课 public class Increase public int a 3 public void add a 5 System out println f class SubIncrease extends Increase p
  • R 中的行相关

    我有两个相同大小的矩阵 我想计算这些矩阵中每对行之间的相关系数 A 的第 1 行与 B 的第 1 行 A 的第 2 行与 B 的第 2 行 等等 A lt matrix runif 1 200 nrow 20 B lt matrix run
  • 在 Android 中使用通过 OTG 线连接的 USB 播放视频?

    我想问是否有可用的应用程序 用户可以通过 OTG 电缆设备将 USB 连接到 Android 并播放其中包含的媒体 特别是视频 我制作了一个广播接收器来检测连接的 USB 我也想读取内容 我正在使用这个代码片段 private final
  • 多层应用程序数据文件夹 - Windows 7

    在命令窗口中 如果我导航到 c users me 并执行 dir 我会看到 13 个文件夹 但没有文件 如果我执行 dir s 我会看到数千个文件 但令我困扰的是我看到这样的路径 C Users me AppData Local Appli
  • 异步 https firebase 函数

    HTTPS 函数是否应该像实时函数那样返回异步承诺 我们还没有返回 HTTPS 函数 仅使用 res status send 等 而且看起来 firebase function samples 也没有返回 但文档有点含糊https fire
  • 从 Excel 调用具有多个参数的存储过程

    我已经建立了 SQL Server 与存储过程所在数据库的连接 存储过程在 SQLServer 中运行良好 存储过程通过与 Excel 中的硬编码参数的连接运行得很好 我得到了我的数据集并将其插入到我的电子表格中 宏不起作用 在宏中 我尝试
  • 如何将 YAML 拆分为多个具有正确名称的文件

    我有一个有效的 YAML name first metadata a name second metadata b name third metadata c 如何在文件中使用单行 AWK 脚本拆分它first yaml second ya
  • 如何在 TypeScript 中索引对象类型?

    我的应用程序收到 消息 我首先验证未知输入以确保它遵循预期的消息格式 const isMessage x gt typeof x object x null typeof x data string 我希望在 TypeScript 中输入此
  • 按字母数字顺序对一组 li 标签进行排序

    我一直在尝试获得一个功能 可以按内容对 li 标签的选择进行排序 但目前无济于事 至少没有速度 准确性 sortasc live click function var liArr Array licontainer children li
  • 错误:运行帖子时标题检查不正确

    我需要从休息调用中获取zip 为了模拟 我使用具有二进制选项的邮递员进行发布 并添加一个带有文件夹和html文件的小zip文件 在模拟期间 我想使用express获取数据并提取zip并放入C盘下的某个文件夹 目前 当我运行以下程序时 这是我
  • 仅在提交时进行 AngularJS 验证

    我想在我的 AngularJS 应用程序中实现一些简单的表单验证 但我不希望它在用户单击表单提交按钮之前显示任何验证错误 我不希望它在我输入时甚至退出字段时进行验证 有没有办法做到这一点 我需要至少编写一个自定义验证器指令 因此它需要与之配
  • 有人能让这个自定义的 AlertDialog 真正起作用吗?

    我问了另一个关于自定义 AlertDialog 的问题here 然后我点击了这个自定义的AlertDialog 发现here import android app AlertDialog import android content Con
  • 如何使用 C# 获取 Excel 下拉列表中的值

    我正在寻找打开和读取 Excel 文件的代码 任何版本的 Excel 包括 2010 我的其中一列有一个下拉菜单 我需要获取下拉列表中所选项目的值 我最终希望将这些值填充到业务对象中 如果有人有一些代码可以分享 请告诉我 我正在使用 C 和
  • 使用VLC的虚拟界面时如何防止显示控制台

    我正在尝试从 Node js 服务器脚本以 虚拟 模式启动 VLC 但是使用child process spawn vlc I dummy 使用 Windows 时 为 VLC 的输出生成一个新的控制台窗口 有没有办法防止这种情况发生并强制
  • 基于文本输入字段创建动态链接

    我正在尝试创建一个文本输入字段 访问者可以在其中输入值 然后单击 执行 或 提交 根据数字 它们将被发送到新页面 例如 如果他们输入 123 并点击提交 则会将他们发送至http www example com page 123 有人可以帮
  • 过滤 OData 中的扩展实体

    如何对 OData 中的扩展实体应用过滤条件 假设我有主实体作为home有字段 homeId StateId CountyID Address 和子实体state as StateId StateName and county as Cou
  • 在 python 中将声音从网站转换为文本

    如何将网站上的声音转换为文本 当我单击网站中的按钮时会播放声音 但我的问题是如何在不使用麦克风的情况下将其转换为文本 仅使用网站和 python import speech recognition as sr r sr Recognizer
  • 回发或初始请求期间的 ASP.NET 事件顺序

    我能否从社区得到一些确认 证明我不会发疯 并且回发期间页面的生命周期实际上与最初请求页面时的顺序不同 如果是这种情况 我们将非常感谢指向概述顺序的参考文献 文章 回发相当于页面生命周期图像会很好 行为略有不同 但顺序相同 在这方面 回发 本
  • java.lang.ClassNotFoundException

    我正在开发一个 java 项目 该项目直到几天前才开始工作 我不确定我对 Eclipse 设置做了什么来控制它 但现在当我尝试运行一些访问 google Finance api 的代码时 我收到了 java lang ClassNotFou
  • 根据下拉列表选择从数据库填充另一个选择下拉列表

    我正在构建一个网站来学习编码 并尝试构建一个工具 用户可以在其中单击包含从数据库中提取的一些类别名称的选择 下拉菜单cat然后将出现另一个选择 其中包含从数据库中提取的子类别名称subcat 这几乎和 Yelp 的一模一样 进入类别 就像