如何从PHP创建jqGrid JSON错误响应,然后使用jqGrid javascript对其进行响应?


How do you create a jqGrid JSON error response from PHP and then respond to it with jqGrid javascript?

我一直在搜索互联网和jqGrid文档,但我找不到关于创建、更新、删除(CRUD)操作的JSON响应格式的任何内容。当然应该有一个JSON消息从PHP返回到jqGrid,告诉它CRUD操作是否成功?该消息的格式是什么?如何编写javascript以使jqGrid响应该消息?我不是一个很好的程序员,所以完整的代码答案将非常感激。

谢谢

创建、删除和更新不需要使用响应。

。如果你做了一个创建操作,你就调用了一个"ajax操作",它将你的数据添加到数据库中。

现在有两种可能:

  1. 创建操作成功
    • 不返回任何值,表示空字符串
    • (只要jqgrid接收到200响应,一切正常)
  2. 创建操作失败
    • 抛出一个带有修改后的响应头的异常

如果jqGrid接收到一个非200的响应代码,它会显示一个错误!

try {
    // insert something in your db
    // ok = true means everything fine
    // ok = false means something unpredictable happened
    if (!$ok) {
       throw new Exception('error');
    }
} catch (Exception $e) {
    header("Status: 500 Server Error caused by dbinsert jqgrid");
    var_dump($e->getMessage());
}

对不起的代码,但这是我最快离开我的大脑现在:)我将jqGrid与Zend框架结合使用,ZF默认使用500响应代码来处理异常(至少我的模板是这样)

在成功更新/删除/创建之后,您必须重新获取整个jqGrid数据。

jQuery("#your_jqgrid_id").jqGrid().trigger('reloadGrid');

恐怕没有其他的机制。(使用了大约6个月前,也许改变了)

如果你想实现你自己的错误/成功处理,只要定义你自己的消息以任何你想要的格式,并在ajax成功函数回调中处理它。

如果你需要更多的代码,而且不是很紧急,就给我留言。

一个额外的建议:不要期望立即理解jqGrid。慢慢来,尝试一下,玩一玩。你需要一段时间才能适应。