[转]Laravel与bootstrap-editable实现table的行内编辑
【转】Laravel与bootstrap-editable实现table的行内编辑
准备需要的库
- bootstrap3.0下载
- bootstrap-table下载
- x-editable-develop下载
前端处理
引入库
要使用插件,首先要在blade模板(或者说html)里引入对应的js文件和css文件
- bootstrap引入
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"/><script src="bootstrap/js/jquery-1.11.2.min.js"></script><script src="bootstrap/js/bootstrap.min.js"></script>
- bootstrap-table引入
<script src="bootstrap-table/dist/bootstrap-table.js" type="text/javascript"></script><script src="bootstrap-table/dist/locale/bootstrap-table-zh-CN.js" type="text/javascript"></script><link href="bootstrap-table/dist/bootstrap-table.css" rel="stylesheet"><script src="bootstrap-table/dist/extensions/editable/bootstrap-table-editable.js" type="text/javascript"></script>
- x-editable-develop引入
<script src="x-editable-develop/dist/bootstrap3-editable/js/bootstrap-editable.js" type="text/javascript"></script>
html代码
在blade模板(html页面)加入table代码如下
<div class="container" z-index="-1"><!--表格--><div class="row"><div class="col-lg-offset-1 col-lg-11 col-md-offset-1 col-md-11 col-sm-offset-1 col-sm-11 col-xs-offset-2 col-xs-10"><table id="StuTable" z-index="-1" dataclasses="table" data-undefined-text="-" data-striped="true"data-sort-order="asc" data-sort-stable="true" data-pagination="true" data-page-number="1"data-page-size="10" data-search="true"></table></div></div>
</div>
可以看到里面有很多bootstrap-table的属性,可以大家可以查阅官方文档,当然bootstrap-table的属性可以在js代码中设置
js代码
使用laravel作为框架,我们项目中使用的是课程->任务->学生成绩的思路,所以暂时没想到怎么在js文件里改对应的route,所以把url用route表示在blade模板里,脱离数据库,只讨论对ajex交互的处理
js代码如下
<script type="text/javascript">$(document).ready(function(){$('#StuTable').bootstrapTable({columns: [{checkbox:true},{field: 'StuNumber',title: '学生学号'}, {field: 'StuName',title: '学生姓名'}, {field: 'StuScore',title: '学生成绩',editable:{type:"text"}}],url: "{{route("grade")}}",onEditableSave:function (field,row,oldvalue,$el) {$.ajax({type: "post",url: "{{route('editable')}}",data: row,dataType: 'json',headers: {'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')},success: function (data, status) {if (status == "success") {alert('提交数据成功');}},error: function () {alert('编辑失败');},complete: function () {alert('完成');}});}});});</script>
- columns中的代码意义是,有勾选框,table的三列分别为学生学号,学生姓名,学生成绩,学生成绩中的
editable:true
表示成绩可以进行编辑 - url中使用route给出了提供数据的对应的方法
- onEditableSave是在行内进行编辑的时候,对应的处理方法
后端处理
生成并给出json格式的数据
在url中我们使用了url: "{{route("grade")}}"
,所以在laravel对应的路由web.php中,我们加入一条
Route::get('/grade','UsersController@grade')->name('grade');
这里的控制器是自己随便填的哈,我看到很多大佬都用AjexController,但是我们项目中主要针对user,测试的时候我就用了UsersController,添加了一条grade方法
接下来要在grade方法中反馈json格式的数据
值得一提的是,如果不用后端返回的json数据的话,可以去掉url那一条,加入data和对应的json数据,比如:
data: [{StuNumber:"PB15000000",StuName: "张三",StuScore: '98'}, {StuNumber:"PB15000000",StuName: '李四',StuScore: '100'}]
所以在grade方法中,我们也要返回这样的json数据,用一个二维索引数组,里面的一维数组用关联数组形式给出即可,代码如下:
public function grade(){$arr=array(array("StuNumber"=>"PB15000000","StuName"=> '张三',"StuScore"=> '98'),array("StuNumber"=>"PB15000001","StuName"=> '李四',"StuScore"=> '100'));return json_encode($arr);}
json_encode
函数会把数组转化成json格式
所以现在我们就可以看到效果如下
点击成绩即可修改
修改数据传给后端
接下来我们要解决的就是修改数据的onEditableSave
函数了
使用jQuery,我们写成如下形式
onEditableSave:function (field,row,oldvalue,$el) {$.ajax({type: "post",url: "{{route('editable')}}",data: row,dataType: 'json',headers: {'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')},success: function (data, status) {if (status == "success") {alert('提交数据成功');}},error: function () {alert('编辑失败');},complete: function () {alert('完成');}});}
这里的row就是我们一行对应的数据,需要传到后端,插件会帮我们转成json格式,所以不必我们操心
测试的时候我使用了post方法,解决方案如下
在blade模板加上
<meta name="_token" content="{{ csrf_token() }}"/>
在ajax函数中加入headers
headers: {'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')}
success表示成功时的输出,error表示错误时的输出,complete表示完成后的输出
这里的url依旧使用route表示,所以在web.php中加入post
Route::post('/editable','UsersController@editable')->name('editable');
对应的editable
方法如下
public function editable(Request $request){//处理代码}
其中的request对象里就包含了的前端传回的row的数据,所以我们可以像处理表单一样,使用如下方式得到需要的数据
$request->input('StuNumber')
$request->input('StuName')
$request->input('StuScore')
然后对数据库进行操作即可
最后
此时我们修改成绩,并使用浏览器的开发者模式,提交成功后可以看到效果如下:
右下方有Form Data,就是传给后端的数据
转自http://blog.csdn.net/weixin_38312031
转载于:https://www.cnblogs.com/ustc-rjgc2017/p/8443556.html
[转]Laravel与bootstrap-editable实现table的行内编辑相关推荐
- python测试开发django-173.bootstrap实现table表格行内编辑
前言 网上看了很多基于bootstrap的table表格行内编辑,需要基于bootstrap-table,bootstrap-table-edit,x-editable等插件,写的很复杂. 我想实现的 ...
- editable组件_表格行内编辑事件
1.简介 x-editable组件是一个适用于bootstrap(目前只更新到bootstrap3),jquery,jquery UI三种风格样式的弹出框编辑插件.本文根据项目需求主要介绍它在boot ...
- bootstrap table 表格支持shirt 多选_bootstrap-table 表格行内编辑实现
这篇文章向大家介绍一下如何使用bootstrap table插件实现表格的行内编辑功能. 我的web前端学习交流群点击进入1045267283,欢迎加入! 先放一张效果图: 应用场景 之前的项目也是采 ...
- bootstrap表格 行编辑状态_JS表格组件BootstrapTable行内编辑解决方案x-editable
前言:之前介绍bootstrapTable组件的时候有提到它的行内编辑功能,只不过为了展示功能,将此一笔带过了,罪过罪过!最近项目里面还是打算将行内编辑用起来,于是再次研究了下x-editable组件 ...
- bootstrap表格 行编辑状态_JS组件系列——BootstrapTable 行内编辑解决方案:x-editable...
前言:之前介绍bootstrapTable组件的时候有提到它的行内编辑功能,只不过为了展示功能,将此一笔带过了,罪过罪过!最近项目里面还是打算将行内编辑用起来,于是再次研究了下x-editable组件 ...
- fastadmin使用editable实现行内编辑无刷新效果
记录:fastadmin使用editable实现行内编辑无刷新效果. 一.下载资源 editable资源下载地址 二.放在如下目录 三.引入并应用 代码示例: require.config({path ...
- ant里面table嵌套子表格_ElementUI el-table行内编辑验证,动态增减行
通过el-from验证动态表格的行内输入 eltable动态增加行或者删除行只需要控制对应的数组就可以实现,行内的验证可以使用el-form的表单验 证,直接上代码: el-form嵌套table f ...
- bootstrap行内编辑后提交多条数据到ssm
先定义一个数组用于接收修改的数据: var changeRows = new Array(); 在bootstrap属性定义上添加类似: onEditableSave: function (field ...
- JS组件系列——Bootstrap Table 表格行拖拽(二:多行拖拽)
原文:JS组件系列--Bootstrap Table 表格行拖拽(二:多行拖拽) 前言:前天刚写了篇JS组件系列--Bootstrap Table 表格行拖拽,今天接到新的需要,需要在之前表格行拖拽的 ...
最新文章
- 程序员的编程能力层次模型
- RV1108调试串口参数设置
- 【Python】判断列表中是否存在一个数
- day02:requests爬取豆瓣电影信息
- SharePoint 2010 中的BCS身份验证模式
- C++派生类含有成员对象构造函数析构函数顺序
- 应用市场中的应用转让
- 制作一个App的完整流程是哪些
- 一文读懂程序化交易、算法交易、量化交易、高频交易、 统计套利的区别
- RS232串口的直连串口线和交叉串口线的区别
- jar脱壳_软件脱壳 - Rannie` - 博客园
- 阿里云环境(CentOS7.6)部署Zabbix5.0 Agent2
- 划水总结剑指offer 链表系列1
- mysql系统设计论文_毕业论文管理系统的设计与实现(MyEclipse,MySQL)
- 尝试做一个好的技术Leader, 建立“去中心化团队”
- 安装Docker Desktop报错WSL 2 installation is incomplete的问题(解决报错)
- 通过磁带系统备份与还原的一些记录
- C/C++语言的应用领域
- VMware虚拟机安装ghost系统
- 超简单甘特图教程,一招教你如何管理项目进程
热门文章
- [翻译]Telnet简单介绍及在windows 7中开启Telnet客户端
- Heritrix 1.14.4的配置和初次使用
- 关于玻璃体手术的最终建议
- 猪和兔子的玻璃体给人用(仅仅是个人想法)
- ubuntu系统中root的2种pip路径
- There are NAN in the matrix, however, you did not set missing=NAN
- python解释器下安装z3_再次:在Windows上安装Z3 Python
- Robust PCA
- extjs入门(06) 按钮占两行
- 一个nuxt(vue)+mongoose全栈项目聊聊我粗浅的项目架构