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

简介: 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!

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
相关文章
|
SQL 安全 PHP
PHP 自发布以来一直在 Web 开发领域占据重要地位,PHP 8 更是带来了属性、刚性类型等新特性。
【10月更文挑战第1天】PHP 自问世以来,凭借其易用性和灵活性,在 Web 开发领域迅速崛起。从简单的网页脚本语言逐步演进为支持面向对象编程的现代语言,尤其自 PHP 5.3 引入命名空间后,代码组织和维护变得更加高效。PHP 7 的性能优化和 PHP 8 的新特性(如属性和刚性类型)进一步巩固了其地位。框架如 Laravel、Symfony、Yii2 和 CodeIgniter 等简化了开发流程,提高了效率和安全性。
174 2
|
9月前
|
供应链 数据可视化 数据管理
做表格用什么软件?VeryReport让数据管理更高效!
做表格用什么软件?VeryReport让数据管理更高效!
|
10月前
|
SQL 缓存 PHP
PHP框架详解 - symfony框架
Symfony框架凭借其灵活性、高性能和强大的社区支持,成为PHP开发领域的重要工具。无论是初学者还是资深开发者,都可以通过Symfony快速构建高质量的Web应用程序。通过深入理解Symfony的核心组件和最佳实践,开发者可以充分发挥其优势,提升开发效率和代码质量。
209 24
|
12月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
566 4
|
12月前
|
API PHP 数据库
PHP中哪个框架最适合做API?
在数字化时代,API作为软件应用间通信的桥梁至关重要。本文探讨了PHP中适合API开发的主流框架,包括Laravel、Symfony、Lumen、Slim、Yii和Phalcon,分析了它们的特点和优势,帮助开发者选择合适的框架,提高开发效率、保证接口稳定性和安全性。
422 3
|
SQL 安全 PHP
探索PHP的现代演进:从Web开发到框架创新
PHP是一种流行的服务器端脚本语言,自诞生以来在Web开发领域占据重要地位。从简单的网页脚本到支持面向对象编程的现代语言,PHP经历了多次重大更新。本文探讨PHP的现代演进历程,重点介绍其在Web开发中的应用及框架创新,如Laravel、Symfony等。这些框架不仅简化了开发流程,还提高了开发效率和安全性。
104 3
|
SQL 安全 PHP
探索PHP的现代演进:从Web开发到框架创新
PHP 自发布以来一直在 Web 开发领域占据重要地位,历经多次重大更新,从简单的脚本语言进化为支持面向对象编程的现代语言。本文探讨 PHP 的演进历程,重点介绍其在 Web 开发中的应用及框架创新。自 PHP 5.3 引入命名空间后,PHP 迈向了面向对象编程时代;PHP 7 通过优化内核大幅提升性能;PHP 8 更是带来了属性、刚性类型等新特性。
123 3
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
197 2
|
2月前
|
数据采集 存储 安全
数据治理≠数据管理!90%的企业都搞错了重点!
在数字化转型中,数据不一致、质量差、安全隐患等问题困扰企业。许多组织跳过基础的数据管理,直接进行数据治理,导致方案难以落地。数据管理涵盖数据生命周期中的采集、存储、处理等关键环节,决定了数据是否可用、可靠。本文详解数据管理的四大核心模块——数据质量、元数据、主数据与数据安全,并提供构建数据管理体系的四个阶段:评估现状、确定优先级、建立基础能力与持续改进,助力企业夯实数据基础,推动治理落地。