我已经完成了教程中的所有工作,并用我的数据替换了它,但这是一个硬编码的情况。例如,在我工作的教程中,我有:
jQuery(document).ready(function(){
jQuery("#list").jqGrid({
url:'http://127.0.0.1/products/index.php/mystuff/test/1/5/productname/desc',
datatype: 'xml',
mtype: 'GET',
colNames:['ProductID','title', 'description','price','tax','notes'],
colModel :[
{name:'invid', index:'invid', width:55},
{name:'invdate', index:'invdate', width:90},
{name:'amount', index:'amount', width:80, align:'right'},
{name:'tax', index:'tax', width:80, align:'right'},
{name:'total', index:'total', width:80, align:'right'},
{name:'note', index:'note', width:150, sortable:false} ],
pager: jQuery('#pager'),
rowNum:10,
rowList:[10,20,30],
sortname: 'title',
sortorder: "desc",
viewrecords: true,
imgpath: 'http://127.0.0.1/products/public/themes/basic/images',
caption: 'Product List'
});
});
但是 URL 是硬编码的以提取数据。该教程有:
jQuery(document).ready(function(){
jQuery("#list").jqGrid({
url:'example.php',
datatype: 'xml',
mtype: 'GET',
colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'],
colModel :[
{name:'invid', index:'invid', width:55},
{name:'invdate', index:'invdate', width:90},
{name:'amount', index:'amount', width:80, align:'right'},
{name:'tax', index:'tax', width:80, align:'right'},
{name:'total', index:'total', width:80, align:'right'},
{name:'note', index:'note', width:150, sortable:false} ],
pager: jQuery('#pager'),
rowNum:10,
rowList:[10,20,30],
sortname: 'id',
sortorder: "desc",
viewrecords: true,
imgpath: 'themes/basic/images',
caption: 'My first grid'
});
});
显然,我的查询字符串中的数据会改变,我不会总是想要相同的网址:http: //127.0.0.1/products/index.php/mystuff/test/1/5/productname/desc
而且,example.php 教程需要查询字符串变量,以便它可以获得正确的数据,但它们从未显示我能找到的那部分。那么如何更改查询字符串?如何动态发送项目?此外,由于硬编码 url,寻呼机按钮会发送这样的内容:
我怎样才能拥有像 /test/right 变量这样的 url?如何更改查询字符串?
感谢您的任何帮助。我希望这不是太明显。我找到了 setGridParam({url:newvalue})但不明白如何使用它。
这是文档。教程在第一部分,顶部。
编辑:感谢以下内容。我想看看他们如何在他们的example.php教程中使用setGridParam。他们只是有example.php,我看不到他们如何从html页面到example.php页面获取查询字符串变量。setGridParam 可能是完成此任务的正确方法,但它不在示例中的位置,因此我无法弄清楚它们是如何传递初始查询字符串变量的。
我知道我可以这样做:
function gridSearch()
{
$("#list").setGridParam(
{
url:"http://127.0.0.1/products/index.php/mystuff/test/1/5/productname/desc",
page:1
}
).trigger("reloadGrid");//Reload grid trigger
return false
}
<input id="sData" class="EditButton" type="submit" value="Search" onClick="return gridSearch()"/>
并且这将重新加载网格(我对其进行了测试;它有效),但是他们首先是如何发送教程中的项目的?如果我不想让按钮重新加载而只是传入变量以使其初始加载怎么办?