【问题标题】:Sending additional params in JSON string to jqGrid将 JSON 字符串中的附加参数发送到 jqGrid
【发布时间】:2011-03-03 22:32:57
【问题描述】:

我正在使用 PHP 为 JQGrid 生成 JSON。我已经向我是 JSON 编码的 PHP 对象添加了另一个属性:

$sql_array = preg_split('/LIMIT/', $sql);
$pass_sql = $sql_array[0];
$response->sql = $pass_sql;
<~SNIP~>
echo json_encode($response);

这在客户端解析得很好,并使用 JSON 填充 jqGrid,如下所示:

{"page":"1","total":28,"records":"685","sql":"SELECT * FROM fires ORDER BY id desc ","rows":[{"id":"3065","cell":["Southern","Lost Fire","National Forests in Mississippi","492","100","0000-00-00",null,null,null,null,null,null,null,null,null,null,null,"3065","2011-03-03 00:00:00"]},{"id":"3064","cell":["Southern","PineTree","East Central Area Dispatch Office","420","80","2011-03-02",null,null,null,null,null,null,null,null,null,null,null,"3064","2011-03-03 00:00:00"]},{"id":"3063","cell":["Southern","LILAC ROAD","Georgia Forestry Commission","100","100","2011-03-01",null,null,null,null,null,null,null,null,null //etc

我需要从 JSON 回复中提取该 sql 参数文本并将其隐藏在 DIV 中以备后用。这可能吗?

【问题讨论】:

  • 这里可能存在一些设计问题......但除此之外,您可以在填充网格的处理程序中完成。

标签: php json jqgrid


【解决方案1】:

从服务器向 jqGrid 发送附加信息的最简单方法是userdata(请参阅this answer。如果您的 JSON 数据会是这样的

{
    "page":"1",
    "total":28,
    "records":"685",
    "userdata":"SELECT * FROM fires ORDER BY id desc ",
    "rows":[
       ...
    ]
}

{
    "page":"1",
    "total":28,
    "records":"685",
    "userdata": {
        sql: "SELECT * FROM fires ORDER BY id desc "
    },
    "rows":[
       ...
    ]
}

附加信息将保存在 jqGrid 中,您可以使用$("#grid_id").jqGrid('getGridParam','userData') 访问。

注意userData 的情况。在 JSON 数据中,它必须是 userdata,在 getGridParam 中:'userData'。

【讨论】:

  • 太棒了!一旦我开始工作,我会试一试并将其标记为“已解决”。
猜你喜欢
  • 2011-03-11
  • 1970-01-01
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-18
  • 1970-01-01
相关资源
最近更新 更多