我目前正在使用jqGrid php实现和手动事务来在网格中添加记录。
E.g:
$oper = jqGridUtils::GetParam('oper');
if ($oper == 'add') {
$grid->trans = false; // disable the transaction
try {
jqGridDB::beginTransaction($conn);
$reference = jqGridUtils::GetParam('reference');
$name = jqGridUtils::GetParam('name');
$brand = jqGridUtils::GetParam('brand');
$price = jqGridUtils::GetParam('price');
$total_quantity_left = jqGridUtils::GetParam('total_quantity_left');
$product = jqGridDB::prepare($conn,
"INSERT INTO product (id, reference, name, brand, price, total_quantity_left) VALUES (NULL,?,?,?,?,?)",
array($reference,
$name,
$brand,
$price,
$total_quantity_left,
)
);
$stock1 = jqGridDB::prepare($conn,
"INSERT INTO stock (id, shop_id, product_id, quantity) SELECT NULL, 1, (SELECT MAX(id) FROM product), ?",
array(jqGridUtils::GetParam('quantity_shop1'))
);
$stock2 = jqGridDB::prepare($conn,
"INSERT INTO stock (id, shop_id, product_id, quantity) SELECT NULL, 2, (SELECT MAX(id) FROM product), ?",
array(jqGridUtils::GetParam('quantity_shop2'))
);
jqGridDB::execute($product);
jqGridDB::execute($stock1);
jqGridDB::execute($stock2);
jqGridDB::commit($conn);
} catch(Exception $e) {
jqGridDB::rollBack($conn);
echo $e->getMessage();
}
}
到目前为止一切正常。
我现在遇到的问题是,我想告知用户在事务期间是否发生错误:通常我想弹出一个显示$ e-> getMessage()的错误对话框,或者错误。
由于在php级别检测到错误,如何调用javascript代码部分来实现此目的(alert(...)或$ .jqgrid.info_dialog(...)我猜)?
谢谢,
答案 0 :(得分:0)
我不是PHP prorgammer,但我希望我可以帮助你。
首先,如果发现错误,您需要报告HTTP status code PHP函数的错误header。此外,您可以在响应正文中放置有关错误的信息(要显示的错误文本)。您可以选择任何响应格式。
在客户端,您可以使用errorTextFormat事件句柄来解码和重新格式化服务器响应。您应该从errorTextFormat返回要在错误对话框中显示的文本或HTML碎片。
如果使用内联编辑,您只需在服务器响应中放置要在错误对话框中显示的文本,或使用errorfunc。