星空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 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持