【问题标题】:jqGrid serializegriddata parsing in PHPPHP中的jqGrid serializegriddata解析
【发布时间】:2011-10-13 13:35:21
【问题描述】:

我对 PHP 非常陌生,虽然我对 javascript 非常熟悉,但我现在正在学习如何使用庞大的 jqGrid 插件。我试图了解 jqGrid 如何序列化网格数据以及 PHP 如何解析这些数据。目前,我什至没有连接到 MySQL,但我只是试图将序列化的 jqGrid 数据回显为“假”结果。我的 PHP 文件头部有以下 js 代码:

<script type='text/javascript'>
   $(function(){
      $('#list').jgGrid({
         url:'grid.php',
         mtype:'POST',
         colNames:['json'],
         colModel:[{name:'j',index:'j',searchoptions:{sopt:['eq']},search:true}],
         pager:'#pager',
         rowNum:10,
         viewrecords:true,
         gridview:true,
         serializeGridData:function(postData){
            return postData;
         }
      })
   });
</script>

然后我将此信息发送到我的“grid.php”文件,该文件包含以下代码:

<?php
   $jason = $_POST['postData'];
   $page = $jason->{'page'};
   echo '<rows>';
      echo '<page>1</page>';
      echo '<total>1</total>';
      echo '<records>1</records';
      echo '<row id="1">';
         echo '<cell>'.$page.'</cell>';
      echo '</row>';
   echo '</rows>';
?>

当我从 JS 中删除 serializegriddata 选项时,一切正常(我还添加了默认的 $_POST['page']、$_POST['rows']、$_POST['sidx']、$_POST[ 'sord'] 回到 PHP 中)。当我添加 serializegriddata 时,问题就出现了。

我正在寻找有关如何在客户端使用 postData 的任何示例(我需要添加到 serializegriddata 中的任何其他函数还是我可以只返回 postData)以及如何在 PHP 中正确解析它(如何到 $_POST 数据,然后如何解析和使用这些数据)。我知道这可能是一个非常简单的解决方案,但是我发现的所有内容都只是在谈论客户端,而对服务器端只字未提。提前致谢。

【问题讨论】:

    标签: php json jqgrid


    【解决方案1】:

    好的,我有点慢,但我部分回答了我自己的问题。如果您设置了 multipleSearch:true,那么所有 jqGrid 文档的读取方式都好像您的整个 postData 被解析为 JSON 字符串。我认为我必须将每个变量解析为 postData JSON 变量,然后将其传递给 PHP。尽管该解决方案需要一些工作才能正确实现,但我缺少的事实是,使用 multipleSearch:true 时,这只会向 AJAX 调用添加一个“过滤器”变量。这个过滤器变量解析如下:

    $filters = $_POST['filters'];
    $json = json_decode($filters,true);
    

    $filters 的结果是:

    {"groupOp":"AND","rules":[{"field":"Customer","op":"eq","data":"eosp"}]}
    

    这与 multipleSearch:false 选项相反:

    $sField = $_POST['sField'];
    $sValue = $_POST['sValue'];
    $sOper = $_Post['sOper'];
    

    一旦我得到这个,我就能够遍历我的搜索参数的所有实例并创建我的 $where 变量。对我来说几乎成为一个大问题的一件事是我能够找到的关于正确构建一个(下面的链接)的旧示例是你只能让 WHERE is a mysql_query 一次。

    http://blog.brzezinka.eu/webmaster-tips/jquery/how-to-enable-the-search-functionality-in-jqgrid

    我希望这可能对将来的某人有所帮助(这让我连续发疯了将近 2 天)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多