Layui数据表格 前后端json数据接收的方法

yizhihongxing

当使用Layui数据表格时,前后端传输数据可以使用json数据格式。下面是使用json数据格式以及前后端json数据接收方法的完整攻略。

1. 前端传送json数据

前端使用layui.table.render()方法进行渲染表格,其中url参数可以指定后台接收json数据的url,也可以将json数据直接放在data参数中一同传送到后台。

示例1:传送url

前端使用以下代码将json数据传送到后台:

layui.use('table', function(){
  var table = layui.table;

  table.render({
    elem: '#test', //绑定 table 的id
    url: '后台接收json数据的url', //接口地址
    cols: [[
      {field:'id', title: 'ID'},
      {field:'username', title: '用户名'},
      {field:'sex', title: '性别'},
      {field:'city', title: '城市'},
      {field:'sign', title: '签名'},
      {field:'experience', title: '积分'},
      {field:'score', title: '评分'},
      {field:'classify', title: '职业'},
      {field:'wealth', title: '财富'}
    ]],
    page: true //开启分页
  });
});

后台接收json数据的url中可以使用POST或GET方法进行数据接收,例如PHP后台接收json数据的代码如下:

$data = file_get_contents("php://input");
$json = json_decode($data);

示例2:传送参数中的json数据

前端使用以下代码将json数据放在data参数中传送到后台:

layui.use('table', function(){
  var table = layui.table;

  table.render({
    elem: '#test', //绑定 table 的id
    data: [{
      "id": 1,
      "username": "张三",
      "sex": "男",
      "city": "北京",
      "sign": "人生格言",
      "experience": 55,
      "score": 88,
      "classify": "作家",
      "wealth": 100000
    }, {
      "id": 2,
      "username": "李四",
      "sex": "女",
      "city": "上海",
      "sign": "人生目标",
      "experience": 77,
      "score": 99,
      "classify": "诗人",
      "wealth": 777000
    }],
    cols: [[
      {field:'id', title: 'ID'},
      {field:'username', title: '用户名'},
      {field:'sex', title: '性别'},
      {field:'city', title: '城市'},
      {field:'sign', title: '签名'},
      {field:'experience', title: '积分'},
      {field:'score', title: '评分'},
      {field:'classify', title: '职业'},
      {field:'wealth', title: '财富'}
    ]],
    page: true //开启分页
  });
});

2. 后端接收json数据

后端使用不同的编程语言可通过不同的方式接收前端传来json数据,下面以PHP及Java分别介绍接收json数据的方法。

PHP

PHP后端可使用file_get_contents("php://input")函数获取到前端传来的json数据,然后使用json_decode()函数将其转换为PHP数据格式。示例代码如下:

$data = file_get_contents("php://input");
$json = json_decode($data);

其中,$json即为转换后的PHP数据。

Java

Java后端可使用HttpServletRequest类获取到前端传来的json数据,然后使用Gson类将其转换为Java数据格式。示例代码如下:

Gson gson = new Gson();
ServletInputStream in = request.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
StringBuffer sb = new StringBuffer("");
String line = "";
while ((line = reader.readLine()) != null) {
    sb.append(line);
}
String jsonStr = sb.toString();
JsonElement element = gson.fromJson(jsonStr, JsonElement.class);

其中,element即为转换后的Java数据。

3. 前端接收后端返回json数据

前端使用layui.table.render()方法可将后端返回json数据渲染成表格,需要在url参数或data参数中指定返回json数据的格式。

示例1:使用url参数获取后端返回的json数据

前端使用以下代码将后端返回的json数据渲染成表格:

layui.use('table', function(){
  var table = layui.table;

  table.render({
    elem: '#test', //绑定 table 的id
    url: '后端返回json数据的url', //接口地址
    parseData: function(res){ //将原始数据解析成 table 组件所规定的数据格式
      return {
        "code": res.code, //解析接口状态
        "msg": res.msg, //解析提示文本
        "count": res.total, //解析数据长度
        "data": res.rows //解析数据列表
      };
    },
    cols: [[
      {field:'id', title: 'ID'},
      {field:'username', title: '用户名'},
      {field:'sex', title: '性别'},
      {field:'city', title: '城市'},
      {field:'sign', title: '签名'},
      {field:'experience', title: '积分'},
      {field:'score', title: '评分'},
      {field:'classify', title: '职业'},
      {field:'wealth', title: '财富'}
    ]],
    page: true //开启分页
  });
});

后端返回的json数据格式需按照表格组件所规定的格式返回,例如PHP后端返回的json数据格式如下:

$result = array(
    "code"=> 0,
    "msg"=> "",
    "total"=> 100,
    "rows"=> $data
);
echo json_encode($result);

示例2:将后端返回的json数据放在data参数中传送

前端使用以下代码将后端返回的json数据渲染成表格:

layui.use('table', function(){
  var table = layui.table;

  $.get('后端返回json数据的url', function(res){
    table.render({
      elem: '#test', //绑定 table 的id
      data: res.data, //绑定数据源
      cols: [[
        {field:'id', title: 'ID'},
        {field:'username', title: '用户名'},
        {field:'sex', title: '性别'},
        {field:'city', title: '城市'},
        {field:'sign', title: '签名'},
        {field:'experience', title: '积分'},
        {field:'score', title: '评分'},
        {field:'classify', title: '职业'},
        {field:'wealth', title: '财富'}
      ]],
      page: true //开启分页
    });
  });
});

后端返回的json数据格式需符合表格组件所规定的数据格式,例如PHP后端返回格式如下:

$result = array(
    "code"=> 0,
    "msg"=> "",
    "data"=> $data
);
echo json_encode($result);

以上就是使用Layui数据表格及前后端json数据接收方法的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Layui数据表格 前后端json数据接收的方法 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • js 处理数组重复元素示例代码

    下面详细讲解一下“js 处理数组重复元素示例代码”的完整攻略。 1. 需求分析 在处理数组时,有时候需要去重,即移除数组中的重复元素。这时候我们可以使用 JavaScript 中提供的一些方法和技巧来实现。 2. 方法一:使用 Set 数据结构 Set 是 ES6 中新增的一种数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。 对于一个数组,我们…

    node js 2023年6月8日
    00
  • nodejs中art-template模板语法的引入及冲突解决方案

    首先,我们需要了解什么是Art-template。Art-template是一款高性能JavaScript模板引擎,它在Node.js和浏览器端均可使用。它的语法简洁易用,并具有扩展性强、速度快等特点,因此被广泛应用于Web开发中。 在Node.js中,我们可以通过npm安装Art-template模块,命令如下: npm install art-templ…

    node js 2023年6月8日
    00
  • 如何用Node.js编写内存效率高的应用程序

    编写内存效率高的应用程序需要注意以下几点: 1. 使用Buffer优化内存 当需要处理大量二进制数据时,使用Buffer是非常高效的。与普通的数据类似,Buffer也是一个类,但是它是专门用来保存二进制数据的。Buffer的优点不仅仅在于它可以像数组一样访问数据,而且它是在代码运行时直接在内存中分配的,不会导致频繁的内存分配和垃圾回收操作,因此可以大大提高内…

    node js 2023年6月8日
    00
  • Nest.js中使用HTTP五种数据传输方式小结

    下面我将为你详细讲解“Nest.js中使用HTTP五种数据传输方式小结”的完整攻略。本文将介绍Nest.js中常用的五种HTTP数据传输方式,即GET、POST、PUT、DELETE和PATCH。 1. GET 在Nest.js中使用GET方式,可以通过@Get()注解实现。例如,以下代码演示了如何使用GET方法获取“/hello”路由的数据: @Get(‘…

    node js 2023年6月8日
    00
  • 掌握Node.js中的Promise异步编程方式

    我可以为您提供掌握Node.js中的Promise异步编程方式的完整攻略。 理解Promise Promise是JS中异步编程中使用于处理回调的规范(规范以ECMAScript 2015为基础),它是一种处理异步任务的方式,用于处理由耗时操作引起的回调函数嵌套问题。 在使用Promise进行异步编程的时候,需要掌握Promise的三种状态: Pending:…

    node js 2023年6月8日
    00
  • 初学者如何快速搭建Express开发系统步骤详解

    下面我为你详细讲解“初学者如何快速搭建Express开发系统步骤详解”: 1. 安装Node.js和npm 首先,需要安装Node.js和npm。如果你还没有安装过这两个工具,请先在官网下载安装。 2. 初始化项目 在命令行中进入项目存放的目录,并执行以下命令: npm init 按照提示输入项目信息,比如项目名称、描述、作者等等。这个过程会生成一个pack…

    node js 2023年6月8日
    00
  • nodejs入门详解(多篇文章结合)

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它让 JavaScript 可以运行在服务端,不仅支持处理 Web 请求,还有一些高性能和低延迟的网络编程特性。下面我们来详细讲解一下关于“nodejs入门详解(多篇文章结合)”的完整攻略: 一、Node.js入门 1. Node.js 的基础知识 介绍Node.js的…

    node js 2023年6月8日
    00
  • 专业级Vue 多级菜单设计

    下面是“专业级Vue 多级菜单设计”的完整攻略,包括以下步骤: 1. 分析需求 在设计任何一个组件之前,我们需要先明确需求,了解用户需要什么样的菜单。比如,需要多少级别的菜单?菜单项是否需要展开或折叠?菜单项是否需要动态渲染数据?等等。 在本次设计中,我们需要实现一个可以展示多个级别的菜单,菜单项可以展开或折叠,菜单项需要动态渲染数据,同时需要支持用户对菜单…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部