jqgrid,将查询字符串发送到我的data.php文件

时间:2012-02-06 17:30:37

标签: php jqgrid

您好我正在使用jqgrid在网格中显示一些信息。但我有一个问题,我不知道如何解决。

我有以下函数来填充我的jqgrid:

<script type="text/javascript">
$(function(){
  $("#list").jqGrid({
    url:'data.php?q=1',
    datatype: 'xml',
    mtype: 'GET',
    colNames:['Fabricante','Codigo', 'Titulo','Descripcion'],
    colModel :[ 
      {name:'fabricante', index:'fabricante', width:137}, 
      {name:'codigo', index:'codigo', width:100}, 
      {name:'titulo', index:'titulo', width:250}, 
      {name:'descripcion', index:'descripcion', width:400}
    ],
    pager: '#pager',
    rowNum:1000,
    rowList:[10,20,30],
    sortname: 'invid',
    sortorder: 'desc',
    viewrecords: true,
    gridview: true,
    height: "256px",
    caption: 'Cursos'
  }); 
}); 
</script>

这是我的身体:

<form name="form" action="CourseSearch.html" method="get">
   <input type="text" class="search-fields" id="fab"/>
   <input class="" type="submit" name="Submit2" value="Search" />
</form>
<table id="list">
    <tr>
        <td><td/>
    </tr>
</table> 
<div id="pager">
</div> 

我只是想知道如何使用我的html表单将字符串发送到我的data.php页面,因为我需要在mysql查询中使用此字符串来获取数据。

由于


这是新代码:

<script type="text/javascript">
$(function(){
  $('#search').click(function () {
    $("#list").trigger('reloadGrid', [{page: 1, current: true}]);
  });
  $("#list").jqGrid({
    url: 'data.php?q=1',
    postData: {
        mySearch: function () { return $('#fab').val(); }
    },
    datatype: 'xml',
    mtype: 'get',
    colNames:['Fabricante','Codigo', 'Titulo','Descripcion'],
    colModel :[ 
      {name:'fabricante', index:'fabricante', width:137}, 
      {name:'codigo', index:'codigo', width:100}, 
      {name:'titulo', index:'titulo', width:250}, 
      {name:'descripcion', index:'descripcion', width:400}
    ],
    pager: '#pager',
    rowNum:1000,
    rowList:[10,20,30],
    sortname: 'invid',
    sortorder: 'desc',
    viewrecords: true,
    gridview: true,
    height: "256px",
    caption: 'Cursos'
  }); 
}); 
</script>

另一个改变

功能

<script type="text/javascript">
$(function(){
  $('#search').click(function () {
    $("#list").trigger('reloadGrid', [{page: 1, current: true}]);
    return false;
  });
  $("#list").jqGrid({
    url: 'data.php?',
    postData: {q: 1, mySearch: function () { return $('#fab').val(); }},
    datatype: 'xml',
    mtype: 'get',
    colNames:['Fabricante','Codigo', 'Titulo','Descripcion'],
    colModel :[ 
      {name:'fabricante', index:'fabricante', width:137}, 
      {name:'codigo', index:'codigo', width:100}, 
      {name:'titulo', index:'titulo', width:250}, 
      {name:'descripcion', index:'descripcion', width:400}
    ],
    pager: '#pager',
    rowNum:1000,
    rowList:[10,20,30],
    sortname: 'invid',
    sortorder: 'desc',
    viewrecords: true,
    gridview: true,
    height: "256px",
    caption: 'Cursos'
  }); 
}); 
</script>

新表格

<fieldset style="border: none;">
   <input type="text" class="search-fields" id="fab"/>
   <input class="" type="submit" name="Submit2" value="Search" />
</fieldset>  

1 个答案:

答案 0 :(得分:0)

如果我理解你是正确的,你需要在点击“Submit2”按钮时使用输入字段#fab刷新网格。

因为您不需要直接向URL发送任何参数,所以您可以先将表单代码更改为

               搜索    

作为“搜索”按钮上的点击事件的处理程序,您可以执行

$('#search').click(function () {
    $("#list").trigger('reloadGrid', [{page: 1, current: true}]);
});

最后,您需要添加jqGrid附加postData参数,如下所示

postData: {
    mySearch: function () { return $('#fab').val(); }
}

(有关更多信息,请参阅here)。如果参数mySearch将发送到网址'data.php?q=1'。由于您使用了mtype: 'GET',因此参数会附加到网址,例如'data.php?q=1&mySearch=test'