我正在尝试使用PHP MVC结构的JqGrid。 我不想使用Jq Grid的搜索功能,而是希望使用常规关键字搜索。 我在json数组中有数据。请告诉我如何使用我的json数据集执行搜索。
此搜索应在多个列上执行。
这是我的搜索表单
<form name="frmsearch" id="frmsearch">
<input type="text" id="txtsearch" name="txtsearch"/>
<a href="javascript:void(0);" onClick="doSearch();">Search</a>
</form>
这是我的网格
$(document).ready(function () {
jQuery("#agentlist").jqGrid({
url: "manageagents/getagents/",
datatype: "json",
mtype:"POST",
jsonReader: {
root: "rows",
page: "currpage",
total: "totalpages",
records: "totalrecords",
id: "0",
cell:"",
repeatitems: false
},
colNames: ['Id','Agent Name', 'Email Address', 'Phone No.1', 'Phone No.2','City', 'State', 'Country'],
colModel: [
... ... ...
],
rowNum:<?php echo $this->config->item('per_page');?>,
rowList:<?php echo $this->config->item('nav_page');?>,
pager: '#plist',
autowidth: true,
height: "100%",
loadonce: true,
viewrecords: true,
altRows:true,
caption: "",
}).navGrid('#plist', { edit: false, add: false, del: false, search: true, refresh: false }); ;
});
答案 0 :(得分:1)
最简单的方法是将搜索输入字段#txtsearch
中的当前值发送到网址"manageagents/getagents/"
。只需将postData
参数添加到属性中,就像将要发送到服务器的参数名称(如myFilter
)一样:
postData: {
myFilter: function () { return $("#txtsearch").val(); }
}
您可以在the answer中阅读更多详情。
在doSearch
函数内部,您只需调用
jQuery("#agentlist").trigger("reloadGrid", [{page: 1}]);