2010-01-07 69 views
1

   我一直在玩jqGrid,但无法找出如何实现搜索功能。理想情况下,我想使用“高级搜索” - 我想当用户提交高级搜索表单时,输入的数据会被触发到'editurl'下特定的网址?我猜这个URL然后输出使用搜索条件过滤的结果集。

我的问题是,这是如何实际完成的?我是否正确地将URL数据发送到了,如果有的话,如何访问这些数据?

在jQuery中相当体面,擅长JavaScript-我使用PHP的所有服务器端的东西(专家知识和mySQL),但不能为我的生活似乎工作了这一点......目前我的Java是:

如何使用jqGrid高级搜索/ w Serverside PHP?

var lastsel; 
$("#list").jqGrid({ 
    url:'example.php', 
    datatype: 'xml', 
    hidegrid: false, 
    mtype: 'GET', 
    colNames:['id','ti', 'na','al','de'], 
    colModel :[ 
     {name:'id', index:'id', width:55, hidden:true, key:true, resizable:true}, 
     {name:'ti', index:'ti', width:75, resizable:true,editable:true}, 
     {name:'na', index:'na', width:200, align:'left', resizable:true,editable:true}, 
     {name:'al', index:'al', width:200, align:'left', resizable:true,editable:true}, 
     {name:'de', index:'de', width:400, align:'left', sortable:false, resizable:true,editable:true} 
    ], 
    pager: '#pager', 
    height:'100%', 
    rowNum:10, 
    searchGrid: {multipleSearch:true, caption : 'go'}, 
    rowList:[50,100,200], 
    sortname: 'ticker', 
    sortorder: 'asc', 
    viewrecords: true, 
    editurl:'example.php', 
    multipleSearch:true, 
    caption: 'Definitions' 
}); 



所有帮助非常感谢!

回答

0

正如您所说,URL包含搜索信息。

但是,搜索不是在客户端进行,你必须在你的服务器端实现它。

而你发布的代码不是Java,是JavaScript。

+0

感谢您的回复,并表示歉意,Java是一个用词不当 - 我知道它的Javascript(如最初指出)。 我知道你可以使用$ _GET ['Oper'](和类似的)在php中获取搜索条件,术语等,但是高级搜索如何表示/传递数据?我想它在一个数组中,但该数组是如何构造的? (即序列化等)。 – Sam 2010-01-08 10:32:51

+0

我没有找到任何searchGrid的文档(在你的例子中使用过)。但在http://trirand.com/blog/jqgrid/jqgrid.html中有使用php进行搜索的演示。你看了一下吗? – 2010-01-08 17:11:57

1

我不知道你是否在任何地方找到你的答案,但我只是做了它,我可以帮你一点。

他们传递一个名为filters的参数。是一个JSON ...你必须将它作为请求接收并将其转换为数组。

我使用php工作,所以我使用了一个名为json_decode($ yourvar,true)的函数。它将数组中的过滤器进行了转换。该数组更容易操作。

0

我只是想学这个,不过我建议你在检查出自己的PHP搜索演示: http://www.trirand.com/blog/jqgrid/jqgrid.html

在左侧,打开手风琴选项卡,然后去到现场数据操作,然后点击“搜索数据”。您将看到现场示例以及代码。这个特殊的例子使用XML而不是JSON。

在他们的例子中,我不明白他们是如何将搜索变量传递给php代码的:它只是发生。如果它是json,我知道它会在URL中。

在任何情况下,我都可以看到数据以与普通网格填充方法相同的方式返回到HTML页面:它使用XML格式返回到jqGrid,并且jqGrid知道如何以该格式获取数据并与它一起运行。

希望有所帮助。