一个基于thinkphp 的 easyui datagrid 组件查询功能的实现
上面是组件的样式 有两个查询功能
首先看前台代码的实现
<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
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。