在做项目过程中遇到了jqGrid做的数据表格,利用layer+jqGrid做出来的,因为之前没有用过jqGrid做过东西,所以学习了下,在他的官网上下了demo,是结合java开发的,主要是返回数据格式要正确,贴代码:
<?php
/**
* jqGrid 获取数据
*/
namespace Portal\Controller;
use Common\Controller\HomebaseController;
class TestController extends HomebaseController
{
public function index()
{
$this->display(‘:test’);
}
public function getdata()
{
$keyname = I(‘post.sidx’); //排序字段
$valuename = I(‘post.sord’); //asc desc
$rows = I(‘post.rows’); //显示行数
$searchField = I(‘searchField’); //搜索字段 name
$searchString = I(‘searchString’); //搜索值 abc
$searchOper = I(‘searchOper’); //搜索条件 eq
$order = $keyname . ‘ ‘ . $valuename;
$where[$searchField] = array($searchOper, $searchString);
// var_dump(json_encode(I(‘post.’))); //{“_search”:”false”,”nd”:”1495868771208″,”rows”:”10″,”page”:”1″,”sidx”:”id”,”sord”:”desc”}
//{“_search”:”false”,”nd”:”1495868797817″,”rows”:”10″,”page”:”1″,”sidx”:”md5″,”sord”:”asc”}
//{“_search”:”false”,”nd”:”1495868812273″,”rows”:”10″,”page”:”1″,”sidx”:”md5″,”sord”:”desc”}
//{“_search”:”true”,”nd”:”1495870004889″,”rows”:”60″,”page”:”1″,”sidx”:”id”,”sord”:”asc”,”filters”:””,”searchField”:”id”,”searchString”:”9999″,”searchOper”:”eq”}
$nowPage = I(‘page’, 1); //当前分页
$firstRow = $rows * ($nowPage – 1);
$records = M(‘Md5’)->count();
$total = ceil($records / $rows); //总页数
$list = M(‘Md5’)->where($where)->order($order)->limit($firstRow, $rows)->select();
foreach ($list as $k => $v) {
$list[$k][‘id’] = $v[‘id’];
$list[$k][‘cell’] = $v;
}
$data = array(
‘total’ => $total,
‘page’ => $nowPage,
‘records’ => $records,
‘rows’ => $list,
);
echo json_encode($data);
}
}
下面是html代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- jqGrid组件基础样式包-必要 --> <link rel="stylesheet" href="__TMPL__Public/jqgrid/css/ui.jqgrid.css" /> <!-- jqGrid主题包-非必要 --> <!-- 在jqgrid/css/css这个目录下还有其他的主题包,可以尝试更换看效果 --> <link rel="stylesheet" href="__TMPL__Public/jqgrid/css/css/redmond/jquery-ui-1.8.16.custom.css" /> <!-- jquery插件包-必要 --> <!-- 这个是所有jquery插件的基础,首先第一个引入 --> <script type="text/javascript" src="__TMPL__Public/jqgrid/js/jquery-1.7.1.js"></script> <!-- jqGrid插件包-必要 --> <script type="text/javascript" src="__TMPL__Public/jqgrid/js/jquery.jqGrid.src.js"></script> <!-- jqGrid插件的多语言包-非必要 --> <!-- 在jqgrid/js/i18n下还有其他的多语言包,可以尝试更换看效果 --> <script type="text/javascript" src="__TMPL__Public/jqgrid/js/i18n/grid.locale-cn.js"></script> <title>MD5数据</title> </head> <body> <input type="button" id="button" value="获取选中" name=""> <table id="list2"></table> <div id="pager2"></div> <script> $(function(){ //页面加载完成之后执行 pageInit(); }); function pageInit(){ //创建jqGrid组件 jQuery("#list2").jqGrid( { url : "{:U('test/getdata')}",//组件创建完成之后请求数据的url datatype : "json",//请求数据返回的类型。可选json,xml,txt mtype : "post",//向后台请求数据的ajax的类型。可选post,get colNames : [ 'id', 'value', 'md5', 'time' ],//jqGrid的列显示名字 colModel : [ //jqGrid每一列的配置信息。包括名字,索引,宽度,对齐方式..... {name : 'id',index : 'id',width : 55}, {name : 'value',index : 'value',width : 90}, {name : 'md5',index : 'md5',width : 300}, {name : 'time',index : 'time',width : 180,align : "center"}, ], rowNum : 20,//一页显示多少条 rowList : [ 20, 40, 60 ],//可供用户选择一页显示多少条 pager : '#pager2',//表格页脚的占位符(一般是div)的id autowidth: true, //自动匹配宽度 sortname : 'id',//初始化的时候排序的字段 sortorder : "asc",//排序方式,可选desc,asc viewrecords : true, caption : "MD5数据",//表格的标题名字 multiselect : true,//多选框 }); /*创建jqGrid的操作按钮容器*/ /*可以控制界面上增删改查的按钮是否显示*/ jQuery("#list2").jqGrid('navGrid', '#pager2', {edit : false,add : false,del : true}); } //此步骤可以做删除操作,代码未完成 $('#button').click(function(event) { var sels = $("#list2").jqGrid('getGridParam','selarrrow'); console.log(sels); }); </script> </body> </html>
数据库文件和jqGrid文件附上:
顺便贴上懒人插入语句
INSERT INTO cmf_md5_copy(value,md5,time) SELECT value,md5,time FROM cmf_md5_copy
发表回复