星空2020 2022-10-15 14:34 采纳率: 64.1%
浏览 26
已结题

layui+ajax+php后台如何实现下拉框八级联动?

mysql数据表结构如下demo1,如何链接后构造八级联动数据?


```sql
DROP TABLE IF EXISTS `demo1`;
CREATE TABLE `demo1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`种类` varchar(32) DEFAULT NULL,
`品名` varchar(32) DEFAULT NULL,
`地区` varchar(32) DEFAULT NULL,
`总监` varchar(32) DEFAULT NULL,
`一线经理` varchar(32) DEFAULT NULL,
`二线经理` varchar(32) DEFAULT NULL,
`主管` varchar(32) DEFAULT NULL,
`组长` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;

INSERT INTO `demo1` VALUES ('1', '食品', '水果','张三','黎明','巩昌','张明','吾悦','李青');
INSERT INTO `demo1` VALUES ('2', '食品', '蔬菜','AA','BB','CC','DD','EE','FF');
INSERT INTO `demo1` VALUES ('3', '生活用品', '灶台','AA','AC1','AC2','DD','EE','FF');
INSERT INTO `demo1` VALUES ('4', '食品', '水果','AA','CC01','CC02','DD01','EE01','FF001');
INSERT INTO `demo1` VALUES ('5', '生活用品', '灶台','AA','CC01','CC02','DD01','EE01','FF001');
INSERT INTO `demo1` VALUES ('6', '生活用品', '实木桌','AA','CC01','CC02','DD01','EE01','FF001');
INSERT INTO `demo1` VALUES ('7', '其他', 'G2','AA','CC01','32000','DD01','EE01','FF001');
INSERT INTO `demo1` VALUES ('8', '其他', 'H3','AA','CC01','5555','DD01','EE01','FF001');
INSERT INTO `demo1` VALUES ('9', '生活用品', '实木床','AA','77777','CC02','88888','EE01','FF001');
INSERT INTO `demo1` VALUES ('10', '食品', '蔬菜','AA','FF01','ER888','0001','88888','444409');

链接数据库

```php
//////////data.php
<?php
$db=mysqli_connect("localhost","root","123456","test");
$result=mysqli_query($db,"select * from protype",MYSQLI_USE_RESULT);
$rs=mysqli_fetch_all($result,MYSQLI_ASSOC);
mysqli_free_result($result);
mysqli_close($db);
$s=json_encode($rs);
echo "var arrType=". $s;
?>


<script src="data.php"></script>
<script>
    /////////////如何构造八级联动数据/////////
    
    var kvType = {};
    Array.from(new Set(arrType.map(i => i.种类))).forEach(种类 => {
        var 品名s = Array.from(new Set(arrType.filter(i => i.种类 == 种类).map(i => i.品名))).map(i => ({ 品名: i }));
        kvType[种类] = {  };
        品名s.forEach(i => {
            kvType[种类][i.品名]= arrType.filter(x => x.种类 == 种类 && x.品名 == i.品名).map(i => i.地区);
        });
    });
</script>


  • 写回答

1条回答 默认 最新

  • 多放点洗衣粉 2022-10-20 10:38
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 修改了问题 10月15日
  • 创建了问题 10月15日

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题