layui框架实战案例(2):LayUI表格与Echarts图表交互展示及PHP后台数据管理(搜索、翻页、动态显示)

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: layui框架实战案例(2):LayUI表格与Echarts图表交互展示及PHP后台数据管理(搜索、翻页、动态显示)


引入外部文件

 <link rel="stylesheet" href="js/layui/css/layui.css" media="all">
    <script src="js/jquery.js" charset="utf-8"></script>
    <script src="js/echarts.min.js" charset="utf-8"></script>
    <script src="js/visual.js" charset="utf-8"></script>
    <script src="js/layui/layui.js" charset="utf-8"></script>


创建容器

<div class="demoTable">
    搜索ID:
    <div class="layui-inline">
        <input class="layui-input" name="id" id="demoReload" autocomplete="off">
    </div>
    <button class="layui-btn" data-type="reload">搜索</button>
</div>
<table class="layui-hide" id="test"></table>


执行代码

layui.use(['table', 'layer', 'form'], function () {
        var table = layui.table;
        var util = layui.util;
        table.render({
            elem: '#test'
            , url: 'data.php'
            , layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
            , limits: [5, 10, 15, 20]
            , toolbar: true
            , even: true
            , page: true
            , id: 'searchTable'
            , cols: [[
                {type: 'numbers'}
                , {field: 'vid', title: 'Id', sort: true}
                , {field: 'vname', title: '姓名', sort: true}
                , {field: 'vdata', title: '销量'}
                , {field: 'vtask', title: '任务'}
                , {field: 'vctime', title: '时间', templet: function (d) {return util.toDateString(d.vctime * 1000, "yyyy-MM-dd HH:mm:ss")}}
            ]]
            , done: function (res, curr, count) {
                console.log(res);
                var dataName = [], dataList = [];
                for (var i = 0; i < res.data.length; i++) {
                    dataName.push(res.data[i].vname);
                    dataList.push(res.data[i].vdata);
                }
                //渲染图表;
                echart1Str(dataName, dataList);
            }
        });
        var $ = layui.$, active = {
            reload: function () {
                var demoReload = $('#demoReload');
                //执行重载
                table.reload('searchTable', {
                    page: {
                        curr: 1 //重新从第 1 页开始
                    }
                    , where: {
                        keys: demoReload.val()
                    }
                });
            }
        };
        $('.demoTable .layui-btn').on('click', function () {
            var type = $(this).data('type');
            active[type] ? active[type].call(this) : '';
        });
    });


Echarts柱图函数

/**
 * Created by Administrator on 2020-08-02.
 */
function echart1Str(vname, dataList) {
    var myChart = echarts.init(document.getElementById('main'));
    var option = {
        grid: {
            top: '5%',
            right: '2%',
            left: '2%',
            bottom: '5%'
        },
        tooltip: {
            trigger: 'item',
            axisPointer: {
                lineStyle: {
                    color: '#57617B'
                }
            }
        },
        xAxis: [{
            type: 'category',
            data: vname,
            axisPointer: {
                type: 'line'
            },
            axisLine: {
                lineStyle: {
                    color: '#272456'
                }
            },
            axisLabel: {
                textStyle: {
                    fontSize: 12,
                    color: 'rgba(0,0,0,0.5)',
                }
            },
        }],
        yAxis: [{
            axisLabel: {
                formatter: '{value}',
                textStyle: {
                    fontSize: 12,
                    color: 'rgba(0,0,0,0.5)',
                }
            },
            axisLine: {
                lineStyle: {
                    color: '#272456'
                }
            },
            splitLine: {
                lineStyle: {
                    color: 'rgba(0,0,0,0.2)'
                }
            }
        }],
        series: [{
            type: 'bar',
            data: dataList,
            barWidth: '50%',
            itemStyle: {
                normal: {
                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                        offset: 0,
                        color: '#39e7d7'
                    }, {
                        offset: 1,
                        color: '#10A7DB'
                    }], false),
                    barBorderRadius: [5, 5, 0, 0],
                    /*shadowColor: 'rgba(0,255,225,1)',
                     shadowBlur: 4,*/
                }
            }
        }]
    };
    myChart.setOption(option);
    window.addEventListener("resize", function () {
        myChart.resize();
    });
}


PHP后台数据

<?php
//处理前台页面传过来的数据
@$p = $_GET['page'];//获取用户选择的页码
@$pagesize = $_GET['limit'];//获取用户选择的每页显示多少条数据
@$keys = $_GET['keys'];//获取用户选择的每页显示多少条数据
/*echo $p;
echo $pagesize;*/
//连接数据库
$dsn  = 'mysql:dbname=daishan;host=127.0.0.1';
$user = 'root';
$pass = 'root';
$pdo  = new PDO($dsn, $user, $pass);
/*总记录数*/
$sql1 = "select * from po_demo";
if ($keys != "") {
  $sql1 .= " WHERE vid =" . $keys;
}
$stmt1 = $pdo->query($sql1);
//查询数据
$res   = [];
$limit = ($p - 1) * $pagesize;//偏移量
$sql   = "select * from po_demo";
if ($keys != "") {
  $sql .= " WHERE vid =" . $keys;
}
$sql .= " order by vid";
if ($p != "") {
  $sql .= "  limit $limit,$pagesize";
}
$stmt         = $pdo->query($sql);
$res['code']  = 0;
$res['count'] = $stmt1->rowCount();
$res['msg']   = "";
$data         = $stmt->fetchAll("4");
$res['data']  = $data;
echo json_encode($res);


Done!

相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
相关文章
|
3月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
4月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
178 1
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
|
4月前
|
前端开发 数据挖掘 关系型数据库
基于Python的哔哩哔哩数据分析系统设计实现过程,技术使用flask、MySQL、echarts,前端使用Layui
本文介绍了一个基于Python的哔哩哔哩数据分析系统,该系统使用Flask框架、MySQL数据库、echarts数据可视化技术和Layui前端框架,旨在提取和分析哔哩哔哩用户行为数据,为平台运营和内容生产提供科学依据。
297 9
Echarts大屏开发|前后台通用场景
Echarts大屏开发|前后台通用场景
|
6月前
|
PHP
PHP开发的爱情盲盒交友系统网站源码 独立后台
PHP开发的爱情盲盒交友系统网站源码 独立后台
60 4
|
6月前
|
存储 安全 关系型数据库
安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性
安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性
|
7月前
|
前端开发 关系型数据库 MySQL
【PHP】thinkPHP6中的MVC思想的小案例
【PHP】thinkPHP6中的MVC思想的小案例
140 2
|
1月前
|
人工智能 关系型数据库 分布式数据库
拥抱Data+AI|“全球第一”雅迪如何实现智能营销?DMS+PolarDB注入数据新活力
针对雅迪“云销通App”的需求与痛点,本文将介绍阿里云瑶池数据库DMS+PolarDB for AI提供的一站式Data+AI解决方案,助力销售人员高效用数,全面提升销售管理效率。

热门文章

最新文章