试图理解jqgrid的jquery。如何更改AJAX调用的URL?

试图理解jqgrid的jquery。如何更改AJAX调用的URL?,jquery,jqgrid,Jquery,Jqgrid,我已经完成了教程中的所有工作,用我的数据替换它,但这是一个硬编码的情况。例如,在我正在学习的教程中,我有: 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:

我已经完成了教程中的所有工作,用我的数据替换它,但这是一个硬编码的情况。例如,在我正在学习的教程中,我有:

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'
  }); 
}); 
显然,我的查询字符串中的数据将发生变化,我并不总是想要相同的url:

而且,example.php教程需要querystring变量,这样才能获得正确的数据,但它们从未显示我可以找到的部分。那么如何更改查询字符串?如何动态发送项目?此外,由于硬代码url,寻呼机按钮发送如下内容:

我怎么能有一个像/test/这样的url来定义正确的变量呢?如何更改查询字符串

谢谢你的帮助。我希望这不是太明显。我发现了,但不知道如何使用它

这是你的电话号码。本教程位于顶部的第一部分

编辑:感谢下面的内容。我试图了解他们在example.php教程中如何使用setGridParam。他们只有example.php,我看不出他们是如何从html页面到example.php页面获取querystring变量的。setGridParam可能是实现这一点的正确方法,但它在示例中不存在,因此我无法确定它们是如何传递初始querystring变量的

我知道我可以做到这一点:

    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()"/>
函数gridSearch()
{
$(“#列表”).setGridParam(
{
url:“http://127.0.0.1/products/index.php/mystuff/test/1/5/productname/desc",
页码:1
}
).trigger(“重新加载网格”);//重新加载网格触发器
返回错误
}

这将重新加载网格(我测试了它;它可以工作),但是他们首先是如何发送教程中的项目的呢?如果我不想让按钮重新加载,而只是传入变量让它最初加载,该怎么办?

创建网格后,您可以建立一个url,然后指定该url并触发网格重新加载

jQuery("#list").jqGrid().setGridParam({url : 'newUrl'}).trigger("reloadGrid")
您可以尝试以下方法:

jQuery("#list")
    .jqGrid()
    .setGridParam({
        data:'xml',
        url : 'newUrl'
    })
    .trigger("reloadGrid");

假设您已经在js函数中编写了jqgrid js代码。 因此,在该方法中,在变量urlGetLst 在jqgrid代码中,我们必须指定一些属性:

url: urlGetLst,//(will be dynamic)
//and
loadonce: false
使用此选项,它将每次调用指定的url,并使用新数据刷新jqgrid

在使用url调用jqgrid加载函数之前调用/执行以下代码

$("#jqgridtab").GridUnload();

他们是如何在教程中发送变量的?您知道寻呼机查询字符串是如何创建的吗?通过使用.getGridParam(“page”)etcB方法创建的。但教程中该方法在哪里?我相信你。我只是不知道他们是如何在他们的教程中实现它的。当abc是免费产品时,他们无法在abc中解释所有内容。@redsquare:我使用了你的答案,但网格正在加载所有数据,但当我在新窗口中打开url时,json显示的记录很少,这应该是输出。你能告诉我可能有什么问题吗。?这是我的代码
grid.jqGrid().setGridParam({url:myUrl}).trigger(“reloadGrid”)