博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue导航菜单调用PHP后台数据
阅读量:5035 次
发布时间:2019-06-12

本文共 2428 字,大约阅读时间需要 8 分钟。

数据库设计:

 

 

后台PHP输出所有菜单数据(index.php):

<?php

header("Access-Control-Allow-Origin:*");
header("Content-type:text/json;charset=utf-8");
error_reporting(0);
require_once ("database.php");
$sql = "select * from v_menu";
$re = excute_query($sql);
$arr=[];
while ($row = $re -> fetch_assoc()) {
    if($row["isContent"]=="0"){
        $row["isContent"]=false;
    }else{
        $row["isContent"]=true;
    }
    array_push($arr,$row);
}
echo json_encode($arr);
?>

输出结果:

[{"id":"1","name":"\u7f51\u7ad9\u9996\u9875","pId":"-1","isContent":false},

{"id":"2","name":"\u5173\u4e8e\u6211\u4eec","pId":"-1","isContent":true},

{"id":"3","name":"\u516c\u53f8\u7b80\u4ecb","pId":"2","isContent":true},

{"id":"4","name":"\u516c\u53f8\u6587\u5316","pId":"2","isContent":true},

{"id":"5","name":"\u8363\u8a89\u8d44\u8d28","pId":"2","isContent":true},

{"id":"6","name":"\u5b9e\u9a8c\u5ba4\u8ba4\u8bc1","pId":"-1","isContent":true},

{"id":"7","name":"\u5b9e\u9a8c\u5ba4\u5e03\u5c40\u5efa\u7acb","pId":"6","isContent":true},

{"id":"8","name":"\u4eea\u5668\u8bbe\u5907\u9009\u62e9","pId":"6","isContent":true},

......

]

vue文件(将数据转化为树级目录):

new Vue({

            el: "#app",
            data() {
                return {
                    data: [],//查看php文件夹下的menu.json文件
                }
            },
            created() {
                this.getAllList();
            },
            methods: {
                getAllList() {
                    axios
                        .get('http://localhost/PHP/vue.js/vue+.html+axios+php/sjlr/php/index.php')
                        .then(response => {
                            let data1 = response.data;
                            // console.log(data);
                            let tree = [];
                            for (let i = 0; i < data1.length; i++) {
                                //pId为-1的父节点
                                if (data1[i].pId == '-1') {
                                    let obj = data1[i]
                                    obj.list = []
                                    tree.push(obj)
                                    data1.splice(i, 1)
                                    i--
                                }
                            }
                            if (data1.length != 0) {
                                for (let i = 0; i < tree.length; i++) {
                                    for (let j = 0; j < data1.length; j++) {
                                        if (data1[j].pId == tree[i].id) {
                                            let obj = data1[j]
                                            obj.list = []
                                            tree[i].list.push(obj)
                                            data1.splice(j, 1)
                                            j--
                                        }
                                    }
                                }
                            }
                            this.data = tree
                        })
                        .catch(function(error) {
                            // 请求失败处理
                            console.log(error);
                        });
                },
            }
        })

data数据:

........

生成菜单导航:

<el-menu theme="dark" class="el-menu-demo" mode="horizontal" background-color="#1d5daf" text-color="#fff" active-text-color="#0e81ce">

                        <template v-for="(item,index) in data">
                            <el-submenu :index=item.id v-if="item.isContent">
                                <template slot="title">
                                    {
{item.name}}
                                </template>
                                <template v-for="(menu,index) in item.list">
                                    <el-menu-item :index=menu.id>{
{menu.name}}</el-menu-item>
                                </template>
                            </el-submenu>
                            <el-menu-item :index=item.id v-else>{
{item.name}}</el-menu-item>
                        </template>
                    </el-menu>

 

转载于:https://www.cnblogs.com/zyl-930826/p/11394364.html

你可能感兴趣的文章
机器学习好网站
查看>>
redhat 7 源码安装 mysql5.5.49
查看>>
技术项目,问题
查看>>
Android官方技术文档翻译——ApplicationId 与 PackageName
查看>>
js随机数的取整
查看>>
Feign使用Hystrix无效原因及解决方法
查看>>
Sam做题记录
查看>>
软件工程APP进度更新
查看>>
hexo 搭建博客
查看>>
建造者模式(屌丝专用)
查看>>
Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
查看>>
C++的引用
查看>>
T-SQL查询进阶--深入浅出视图
查看>>
Android读取url图片保存及文件读取
查看>>
完整ASP.Net Excel导入
查看>>
循环队列的运用---求K阶斐波那契序列
查看>>
python itertools
查看>>
http://lorempixel.com/ 可以快速产生假图
查看>>
编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成...
查看>>
文件操作
查看>>