在datagrid中toolbar添加searchbox查询框,根据列范围查询数据,先看效果图:
1. searchbox采用easyui的Demo例子,再加以js扩展,根据datagrid中的列数据自动生成选择查询范围。
View
Code
1 <div id="testa" style="display:inline;padding-top:17px;">
2 <!-- 这里的padding-top是让搜索栏向下点,也就是与"添加"等按钮对齐,但在HTML里面不好用,在jsp页面中已测试可用 -->
3 <input id="sss" class="easyui-searchbox" searcher="qq" prompt="请输入查询内容" style="width:200px"></input>
4 <div id="mm" style="width:100px">
5 </div>
6 </div>
View
Code
1 //循环列名,生成搜索的下拉列表
2 var fields = $('#dg').datagrid('getColumnFields');
3 var muit="";
4 for(var i=0; i<fields.length; i++){
5 var opts = $('#dg').datagrid('getColumnOption', fields[i]);
6 muit += "<div name='"+ fields[i] +"'>"+ opts.title +"</div>";
7 };
8 $('#mm').html($('#mm').html()+muit);
9 $('#sss').searchbox({
10 menu:'#mm'
11 });
12 //获取生成的搜索框
13 var a=$("#testa");
14 //将生成好的搜索框放入工具栏
15 $(".datagrid-toolbar").append(a);
16 });
17 function qq(value,name){
18 $('#dg').datagrid('load', { "searchKey": name, "searchValue": value });
19 }
2. 前台需将要查询的字段和值传给datagrid。其中searchKey为字段名,searchValue为所要查询的值。
View
Code
1 function qq(value,name){
2 $('#dg').datagrid('load', { "searchKey": name, "searchValue": value });
3 }
3. 后台处理:接收前台传递的参数$_POST['searchkey'],$_POST['searchValue']
View
Code
1 public function read(){
2 $pagenum=isset($_POST['page']) ? intval($_POST['page']) : 1;
3 $rowsnum=isset($_POST['rows']) ? intval($_POST['rows']) : 10;
4 $User=M("User");
5 if(isset($_POST['searchValue']) and $_POST['searchValue']!=""){
6 $userlist=array();
7 $map[$_POST['searchKey']]=array('like',array('%'.$_POST['searchValue'].'%'));
8 //$userlist=$User->where($_POST['searchKey'].'="'.$_POST['searchValue'].'"')->limit(($pagenum-1)*$rowsnum.','.$rowsnum)->order('id asc')->select();
9 //$total=$User->where($_POST['searchKey'].'="'.$_POST['searchValue'].'"')->count();
10 $userlist=$User->where($map)->limit(($pagenum-1)*$rowsnum.','.$rowsnum)->order('id asc')->select();
11 $total=$User->where($map)->count();
12 if ($total==0){
13 $userlist=array("firstname"=>'',"lastname"=>'',"phone"=>'',"email"=>'',"id"=>'');
14 $json='{"total":'.$total.',"rows":['.json_encode($userlist).']}';
15 echo $json;
16 }else{
17 $json='{"total":'.$total.',"rows":'.json_encode($userlist).'}';//重要,easyui的标准数据格式,数据总数和数据内容在同一个json中
18 echo $json;
19 }
20 }else{
21 $total = $User->count(); //计算总数
22 $userlist=array();
23 $userlist=$User->limit(($pagenum-1)*$rowsnum.','.$rowsnum)->order('id asc')->select();
24 if ($total==0){
25 $userlist=array("firstname"=>'',"lastname"=>'',"phone"=>'',"email"=>'',"id"=>'');
26 $json='{"total":'.$total.',"rows":['.json_encode($userlist).']}';
27 echo $json;
28 }else{
29 $json='{"total":'.$total.',"rows":'.json_encode($userlist).'}';//重要,easyui的标准数据格式,数据总数和数据内容在同一个json中
30 echo $json;
31 }
32 }
33 }
4.分析后台代码
1. 首先判断是否要生成查询数据,条件是传递参数$_POST['searchKey']存在且不为空 。
if(isset($_POST['searchValue']) and $_POST['searchValue']!="")
2. 采用like查询语言扩大查询范围,$map[$_POST['searchKey']]=array('like',array('%'.$_POST['searchValue'].'%'));生成的查询代码是:$_POST['searchKey']
like % $_POST['searchValue'] %
3. 生成的查询记录要符合datagrid的json数据格式。其中json数据的总记录用count()生成,需位于where条件之后。
分享到:
相关推荐
使用ThinkPHP 3.2+EasyUI后台权限管理,系统独立分组,非常适合做二次开发。源码完整,能顺利运行,没有问题。
基于Thinkphp+easyui开发的源代码
CRM ThinkPHP开发crm客户管理系统:jquery easyUI+thinkPHP+mysql
管理系统系列--thinkphp + easyui开发的后台管理系统
Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel...
基于easyui布局的ThinkPHP权限管理系统,用户管理、角色管理、节点管理、角色权限功能完整,可以在此基础上进行开发,省去了写权限的麻烦。
1.此项目是基于Thinkphp3.2.3+easyui做的权限管理系统,所有后台管理系统均可基于此项目开发。 2.项目集成php反射自动生成API文档,通过访问http://你的IP或者域名/文件地址/tpcs/index.php/Api/Doc/index.html即可...
基于thinkphp开发的CRM客户管理系统,全部源码开源,无加密,能进行运维。也适合php开发者学习参考。
大部分都只是用php think test进行启动,但是对于想调试test控制器的中的逻辑,则没办法写参数,我看了源码,稍微改进一点点,可以用ide进行调试console
安卓语言是:android stdio 苹果语言是:OC 环境php5.6 sql5.5 伪静态设置thinkphp 适合用来学习 安卓语言是:android stdio 苹果语言是:OC 环境php5.6 sql5.5 伪静态设置thinkphp 适合用来学习 安卓语言是:...
按照官方的例子只能继承WXNOTIFY,可是thinkphp怎么继承第三方的SDK呢,苦恼之中想到了解决办法,业务还放到controller里面处理,先校验数据有效性,再执行业务处理,这样就不依赖第三方库的回调了。
thinkphp扩展common文件,文件包含很多的think类集合,和接口
ThinkPHP5.1框架专用JWT扩展包,解压至extend目录即可使用,支持自动验证账号密码并生成token,自动验证请求参数中的token合法性,支持自定义token负载,更多用法详见README.md文件。
本项目基于Easyui和Thinkphp开发,包含296个文件,包括PNG图片、PHP源代码、HTML页面、JavaScript脚本、GIF动画、CSS样式表、TPL模板文件、数据库文件、HTACCESS文件和DAT数据文件。系统实现了基于Easyui和Thinkphp...
在ThinkPHP3框架中整合GatewayWorker,欢迎下载,一起讨论! GatewayWorker版本:3.0
thinkphp5整合excel导入导出thinkphp5整合excel导入导出 thinkphp5整合excel导入导出thinkphp5整合excel导入导出
easyui+TP后台模板等.zip
thinkphp和ucenter1.6整合
thinkphp3.2整合PHPExcel 数据导入导出完整示例(导入数据并插入数据库,充数据库导出数据到excel表格,包括数据库和源码)