【发布时间】:2014-10-27 20:04:03
【问题描述】:
我有一个数据表,其中某些列中有一些可编辑的输入。我想将编辑后的值保存在 db 中。
这是我的数据表:
values 的序列化数据表如下所示(如果您 print_r($_POST) 进行调试):
javascript - 我通过 ajax 请求将数据表表单发布到我的 laravel api 控制器方法,如下所示:
// Serialize the datatable table into post string
var poDetailUpdates = create_po_details_table.$('input').serialize();
// Call po api to save changes
$.ajax({
type: "POST",
data: poDetailUpdates,
url: '/api/po/update-create-lines/',
complete: function(response) {
if (response.status === 200) {
alert(response.responseText); // success
} else {
alert(response.responseText); // error
}
}
});
php - 这就是我在 laravel 中处理表单帖子的方式:
public function postUpdateCreateLines() {
DB::beginTransaction();
try {
foreach ($_POST as $column_name => $values) {
foreach ($values as $line_id => $new_value) {
DB::table('purchase_order_details')
->where('id', '=', $line_id)
->update(array($column_name => $new_value));
}
}
DB::commit();
Response::make('Purchase order details updated', 200);
} catch (Exception $ex) {
DB::rollback();
Response::make('Purchase order details not updated - '. $ex->getMessage(), 500);
}
}
当代码运行时,一旦 ajax 请求完成,我会在 javascript 中得到一个空的 alert()。
我认为问题可能与数据库事务相关的代码有关,所以我尝试注释掉以下内容:
// DB::beginTransaction();
// DB::commit();
// DB::rollback();
但这也会产生相同的结果(空警报)。知道可能出了什么问题吗?如何调试这个?一定是哪里出了问题……
【问题讨论】:
标签: php jquery ajax laravel-4 datatables