Вам не нужно использовать ответ для создания, удаления и обновления.
Например, если вы делаете операцию создания, вы вызываете «операцию ajax», которая добавляет ваши данные в базу данных.
Теперь есть две возможности:
- Операция создания успешна
- просто ничего не возвращает, означает пустую строку
- (до тех пор, пока получен ответ 200по jqgrid все нормально)
- Операция создания не удалась
- просто выдать исключение с измененным заголовком ответа
Если 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 Framework и ZF по умолчанию использует 500 кодов ответа для исключений (по крайней мере, мой шаблон)
После успешного обновления / удаления / создания вам необходимо повторно получить все данные jqGrid.
jQuery("#your_jqgrid_id").jqGrid().trigger('reloadGrid');
У Афаика нет другого механизма.(Используется последний раз около 6 месяцев назад, может быть, это изменилось)
Если вы хотите реализовать свою собственную обработку ошибок / успехов, просто определите свое собственное сообщение в любом формате, который вы хотите, и обработайте его в обратном вызове функции успеха ajax.
Если вам нужно больше кода, и это не срочно, просто оставьте мне комментарий.
Еще один совет: не ожидайте, что сразу поймете jqGrid.Не торопитесь, попробуйте некоторые вещи, поиграйте с этим.Пройдет некоторое время, прежде чем вы почувствуете себя с ним комфортно.