Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在另一个组合框中基于选定项列出项的组合框。

在另一个组合框中基于选定项列出项的组合框。
EN

Stack Overflow用户
提问于 2012-11-05 21:09:49
回答 2查看 3K关注 0票数 0

我确实有一个使用PHP、MySQL和JavaScript的例程。有两个表: tbl_category和tbl_subcategory,如下所示:

tbl_category

  1. cat_id
  2. cat_name

tbl_subcategory

  1. scat_id
  2. cat_parent_id
  3. cat_name

他们里面有一些信息

tbl_category:

  1. 短裤
  2. 鞋子
  3. T恤

tbl_subcategory:

  1. 1辆牛仔裤
  2. 1重型
  3. 2只靴子
  4. 2只凉鞋
  5. 3长袖
  6. 3短袖
  7. 3马球

我将指向javascript库的链接放入文件头:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script type="text/javascript" src="jquery-1.8.2.min.js"></script>

当然,我以前从jquery网站下载(更新版本)。

我现在有了脚本例程:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script type="text/javascript">

  $(document).ready(function(){
     $("select[name=cat_id").change(function(){
        $("select[name=scat_id]").html('<option value="">Loading...</option>');
        $.post("ajax_subcategory.php",
              {cat_id:$(this).val()},
              function(valor){
                 $("select[name=scat_id]").html(valor);
              }
              )
     })
  })

现在我有了表单,预装了来自表tbl_category的数据的select字段类别:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form name="form" method="post" action="" enctype="multipart/form-data">
<table width="100%" border="0" cellspacing="6" cellpadding="0">
<tr>
   <td align="right">Category:</td>
   <td><select name="cat_id" >
          <option value="0">Choose category</option>
    <?php
             $sql1 =mysql_query("SELECT * FROM tbl_category ORDER by cat_name")or die(mysql_error());
            while($row = mysql_fetch_array($sql1))
            {
               echo ("<option value=\"$row[cat_id]\"" . ($sql1 == $row["cat_name"] ? " selected" : "") . ">$row[cat_name]</option>");  
            }
          ?></select> 
   </td>
</tr>
<tr>
   <td align="right">Sub-category:</td>
   <td><select name="scat_id" selected="selected" >
       <option value="0">Waiting category...</option>
       </select> 
   </td>
 </tr>
 </table>
 <input type="submit" name="submit" value="Submit"/>
 </form>

然后是名为ajax_subcategory的php文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php

include "../connect_to_mysql.php";

$cat_id = $_POST['cat_id'];

$sql1 =mysql_query("SELECT * FROM tbl_subcategory WHERE cat_parent_id='$cat_id' ORDER by cat_name")or die(mysql_error());
while($row = mysql_fetch_array($sql1))
 {
    echo ("<option value=\"$row[scat_id]\"" . ($sql1 == $row["scat_name"] ? " selected" : "") . ">$row[scat_name]</option>");  
 }
 ?>

完成了!一切看起来都很完美和美丽。当我在第一个组合中选择项目时,我可以看到Javascript在工作和加载.显示出来,但是第二个ComboBox总是空的,不管我选择什么项,它显示为空并变得更小(宽度)。

这是一个很好的例行公事,我从另一个网站看到了在网上工作。

你们能帮我找到解决办法吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-11-05 21:42:58

首先,您需要一步一步地进行故障排除来分析数据。在你的情况下,我会这样做:

  1. 在发布之前检查cat_id: $(“选择[name=cat_id”).change(函数(){告警($(This).val());
  2. 按原样打印mysql_query (ajax_subcategory页面)中的字符串,并检查查询是否有效。在MySQL控制台或phpMyAdmin中直接尝试此查询并检查其输出。
  3. 分析ajax响应:在Chrome中使用FireBug或Network并检查Ajax响应。有时,您的ajax_subcategory页面会产生一些PHP警告或通知。

注意:我不明白您为什么要检查条件$sql1 == $row"cat_name“。$sql1将是一个资源Id,根据您的查询,$row‘’cat_ name‘是一个字符串,表示您的子类别名称。

顺便说一句,mysql_*函数是不受欢迎的,并且强烈反对使用它们。使用mysqli_*函数或PDO。

票数 0
EN

Stack Overflow用户

发布于 2012-11-05 22:25:44

请将$row["scat_name"]更改为$row["cat_name"]

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php

    include "../connect_to_mysql.php";

    $cat_id = $_POST['cat_id'];

    $sql1 =mysql_query("SELECT * FROM tbl_subcategory WHERE cat_parent_id='$cat_id' ORDER by cat_name")or die(mysql_error());
    while($row = mysql_fetch_array($sql1))
     {
        echo ("<option value=\"$row[scat_id]\"" . ($sql1 == $row["cat_name"] ? " selected" : "") . ">$row[cat_name]</option>");  
     }
     ?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13244754

复制
相关文章
【Python】基于多列组合删除数据框中的重复值
最近公司在做关联图谱的项目,想挖掘团伙犯罪。在准备关系数据时需要根据两列组合删除数据框中的重复值,两列中元素的顺序可能是相反的。
阿黎逸阳
2020/09/08
14.7K0
Flat风格的Qml组合框
基于Qml的ComboBox控件修改而成。 组合框代码 import QtQuick 2.0 import QtQuick.Controls 2.0 import QtGraphicalEffect
Qt君
2019/12/16
1.2K0
MFC控件编程之组合框跟列表框
  如果要使用组合框跟列表框.那么就要知道.组合框列表框是最核心的东西就是索引. 索引是从0开始的.
IBinary
2019/05/25
1.1K0
用户窗体编程:实现组合框与文本框联动
在VBE中,插入一个类模块,将其重命名为“CComboboxes”。在该类模块中,输入代码:
fanjy
2023/09/27
6060
用户窗体编程:实现组合框与文本框联动
动态图表8|组合框(offset函数)
今天跟大家分享动态图表8——组合框(offset函数)! 步骤: 使用组合框制作下拉菜单 使用offset函数制作动态数据源 利用动态数据源制作图表 1、组合框制作: 在开发工具中插入组合框,将数据源
数据小磨坊
2018/04/10
2.1K0
动态图表8|组合框(offset函数)
动态图表7|组合框(index函数)
今天跟大家分享动态图表7——组合框(index函数)! 组合框制作图表,其步骤与列表框相同,唯一的不同点在于,组合框控件,提供用于选择的下拉菜单,在未选择的情况下,组合框将会把菜单折叠,这样不会占用很
数据小磨坊
2018/04/10
2.9K0
动态图表7|组合框(index函数)
VBA代码分享:可搜索的数据验证+组合框
Excel没有提供搜索数据验证列表的内置方法。因此,当列表很长时,通过滚动来浏览列表很不方便。在mrexcel.com中,提供的可搜索的数据验证+组合框就是解决这个问题的一种方法,它有以下行为:
fanjy
2022/04/13
1.5K0
VBA代码分享:可搜索的数据验证+组合框
示例工作簿分享:可自动筛选的组合框
这是一个很好的Excel工作簿开发示例,来自于ozgrid.com论坛。该示例实现了:可以通过选择单元格区域来提供组合框中的下拉列表值,这些值就是所选单元格区域中的内容;可以在组合框中输入内容来自动筛选组合框中的下拉列表,就像网页搜索中随着输入逐步缩小提示内容一样;并且还可以修改标题、修改提示;等等。如下图1所示。
fanjy
2023/10/04
2830
示例工作簿分享:可自动筛选的组合框
Excel VBA多数据级联组合框示例
这是thesmallman.com中的一个示例,展示了一个多数据级联组合框的例子,非常好!
fanjy
2022/11/16
1.1K0
Excel VBA多数据级联组合框示例
Qt Style Sheet实践(二):组合框QComboBox的定制
导读      组合框是一个重要且应用广泛的组件,一般由两个子组件组成:文本下拉单部分和按钮部分。在许多既需要用户选择、又需要用户手动输入的应用场景下,组合框能够很好的满足我们的需求。如我们经常使用的
24K纯开源
2018/01/18
8.1K0
Qt Style Sheet实践(二):组合框QComboBox的定制
Excel实战技巧67:在组合框中添加不重复值(使用ADO技巧)
很多情况下,我们需要使用工作表中的数据来填充组合框,但往往这些数据中含有许多重复值。如何去除重复值并得到唯一值,这是一个永恒的话题,大家也会用到各式各样的方法得到结果。本文讲解一种技巧,使用Recordset(记录集)来获取唯一值并将其填充到组合框中。
fanjy
2019/12/24
5.7K0
动态图表9|组合框(名称管理器)
今天要跟大家分享的是动态图表9——组合框(名称管理器)! 其实看过最近8篇推送的小伙伴儿大概都能看出来了,我所讲的动态图表制作技巧是沿着这样的思路来的: 数据有效性+(index函数/match函数)+插入图表 +(offset函数/match函数)+插入图表 +(名称管理器/offset函数)+插入图表 列表框+(index函数)+插入图表 +(offset函数)+插入图表 +(名称管理器/offset函数)+插入图表 组合框+(
数据小磨坊
2018/04/10
2K0
动态图表9|组合框(名称管理器)
【Python】基于某些列删除数据框中的重复值
Python按照某些列去重,可用drop_duplicates函数轻松处理。本文致力用简洁的语言介绍该函数。
阿黎逸阳
2020/09/08
20.6K0
【Python】基于某些列删除数据框中的重复值
VBA代码分享2:可搜索的数据验证+组合框
Excel没有提供搜索数据验证列表的内置方法。因此,当列表很长时,通过滚动来浏览列表很不方便。在mrexcel.com中,提供的可搜索的数据验证+组合框就是解决这个问题的一种方法,它有以下行为:
fanjy
2022/06/04
1.3K0
VBA代码分享2:可搜索的数据验证+组合框
Hive 编程专题 之 - 列组合与算术组合
1 - 使用 Oracle SQL Developer 执行上述 HQL 语句第一列为 null :
Lenis
2019/12/25
5220
Hive 编程专题 之 - 列组合与算术组合
Python+tkinter实现任意多层级关系的组合框
正好自己要用,就想了个简单思路实现了一下,假设现在需要一个组合框来显示多个层级关系的单位名称供用户选择,如果只有固定的两级关系当然可以使用两个组合框联动来实现,但是如果层级关系不确定,下面的方法就很有用了。 import tkinter import tkinter.ttk testData = {'01':'学校一', '02':'学校二', '03':'学校三', '0101':'学校一年级一', '010101':'学校一年级一班级一', '0102':'学校一年级二'} #按单位编码进行排
Python小屋屋主
2018/04/16
1.5K0
Python+tkinter实现任意多层级关系的组合框
Excel实战技巧111:自动更新的级联组合框
引言:本文学习整理自www.xelplus.com,很好的一个示例,演示了在不使用VBA的情形下,如何创建自动更新的级联组合框。
fanjy
2021/09/22
8.5K0
聊聊mysql的多列组合查询
• mysql-filtering-by-multiple-columns[1] • selecting-where-two-columns-are-in-a-set[2]
code4it
2022/04/15
4.6K0
聊聊mysql的多列组合查询
序 本文主要展示如何使用mysql的多列组合查询 何为多列组合查询呢,就是查询的值不再是单个列的值,而是组合列的值。比如where (column1,column2) in ((a1,b1),(a2,b2),(a3,b3)) 实例 建表 create table t_demo( id int NOT NULL AUTO_INCREMENT PRIMARY KEY, name varchar(10), score int ); insert into t_demo(name,score)
code4it
2022/04/02
4K0
【组合数学】组合恒等式 ( 递推 组合恒等式 | 变下项求和 组合恒等式 简单和 | 变下项求和 组合恒等式 交错和 )
, 作用 : 求和时拆项 , 将一个组合数拆分成两项之和 , 或两项之差 , 然后合并 ;
韩曙亮
2023/03/28
1.3K0

相似问题

基于另一个组合框中选定项的组合框项

31

基于另一个组合框的选定项- MVVM WPF绑定组合框

30

从其他组合框的选定项填充组合框

20

WPF基于选定的项组合框填充文本框

34

在组合框中列出项目

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文