牛骨文教育服务平台(让学习变的简单)
博文笔记

一个基于thinkphp 的 easyui datagrid 组件查询功能的实现

创建时间:2014-11-11 投稿人: 浏览次数:145


上面是组件的样式  有两个查询功能


首先看前台代码的实现

<div id="tb" style="padding:2px 5px;">  
		<form id="LogParForm">     
        <a onclick="$("#LogGrid").datagrid("reload");" class="easyui-linkbutton c1" data-options="iconCls:"icon-reload",plain:true,">重载</a>
        
        <a onclick="LogGridLoad({par:null});$("#LogParForm").form("clear")" class="easyui-linkbutton c1" data-options="iconCls:"icon-reset",plain:true,">清空条件</a>
        
        <label> 模块 :</label>
        <input id="LogMode">
        <label> IP :</label>
        <input id="LogIp" placeholder="按IP筛选">  
        </form>
        
</div>
js代码

<script type="text/javascript">
$(document).ready(function() {
	$("#LogMode").combobox({
		url:"{:U("menu/getMode")}",
		valueField:"id",
		textField:"name",
		onSelect:function(re){
			//给重新加载数据组装查询条件  这里用的是三维数组  array("后台接受参数名称"=>array("字段"=>array("查询条件","查询值")))
			LogGridLoad({par:{mode:{c:"eq",val:re.code}}})
		}
	});
    
	$("#LogIp").change(function(e) {
       var ip = $(this).val(); 
	   LogGridLoad({par:{ip:{c:"like",val:"%"+ip+"%"}}})
    });

	
	
	LogGridLoad = function(arr){
	   $("#LogGrid").datagrid("load",arr);
	}	
});
</script>

看后台实现代码片段

$post_data = $this->_post();<span style="white-space:pre">	</span>//接受post参数<span style="white-space:pre">			</span>
$map = null; 
if(!empty($post_data["par"])){
<span style="white-space:pre">	</span>//将查询条件组装
<span style="white-space:pre">	</span>foreach ($post_data["par"] as $k=>$v){
<span style="white-space:pre">		</span>$map["".$k.""]=array("".$v["c"]."",$v["val"]);
<span style="white-space:pre">	</span>}
}
$list = $m->where($map)->cache(true)
<span style="white-space:pre">	</span>->order($post_data["sort"]." ".$post_data["order"])
<span style="white-space:pre">	</span>->page($post_data["page"].",".$post_data["rows"])->select();

ok 到这里查询功能就实现了,添加查询的字段很方便,只要定义数组就可以了,此查询方式展示不支持多条件查询,后期会更新

如果有什么问题可以问我哦 QQ296404875




声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。