如何在 Laravel 的 DataTable 列表页面中更新状态
Posted
技术标签:
【中文标题】如何在 Laravel 的 DataTable 列表页面中更新状态【英文标题】:How to update status in DataTable listing page in Laravel 【发布时间】:2020-05-30 00:20:51 【问题描述】:我需要不刷新列表页面更新记录状态。我已经尝试过刷新整页,但我想要一个带有 Laravel 规则的 AJAX 功能。
【问题讨论】:
你能给我们看一些代码吗? 虽然我们需要看一些代码才能完全理解......你可以看看这个:datatables.net/manual/ajax这可能是你需要的 【参考方案1】:在页脚中添加 Jquery
添加列表查看页面这个功能
添加您的数据表
$('#table_user').on('click', '.status_clik', function()
var sid = $(this).attr("sid");
$.ajax(
type: "POST",
url: '/pageController/updateStatus',
data: id: sid,
success: function(response) // Change elements in the DOM ,
);
);
在控制器页面中
class PageController
public function status(Request $request)
$id = $request->get('id');
if($id!='')
$geStatus = DB::table('tablename')->where('id', $id)->first();
$update_data = array('eStatus'=>GET_OPPOSITE_STATUS[$geStatus->eStatus]);
$update = DB::table('tablename')->where('id', $id)->update($update_data);
if($update)
return response()->json(array("status"=>1,"message"=>'Status updated successfully'));
else return response()->json(array("status"=>0,"message"=>_FAIL_TO_PROCESS));
elsereturn response()->json(array("status"=>0,"message"=>_FAIL_TO_PROCESS));
【讨论】:
【参考方案2】:如果您想使用 Ajax 更新记录,您必须在模板中实现 Ajax 并请求执行更改的控制器方法。
jQuery 示例:
$.ajax(
type: "POST",
url: '/pageController/updateStatus',
data: id: 15, status: 'example',
success: function(response) // Change elements in the DOM ,
);
这会将页面 ID 和状态发布到 updateStatus 控制器方法。成功后,您可以更新 DOM 中的值。
控制器示例:
class PageController
public function updateStatus(int $id, $status)
$page = Page::findOrFail($id);
$page->status = $status;
$page->save();
return $page->status;
在控制器中,您在 Page 模型中搜索给定的 ID。然后你更新状态,保存它,然后返回新的状态,这样你就可以在前端使用它了。
【讨论】:
以上是关于如何在 Laravel 的 DataTable 列表页面中更新状态的主要内容,如果未能解决你的问题,请参考以下文章
编辑列日期格式后不显示过滤日期 - Laravel Yajra Datatable
如何在 Laravel 的 DataTable 列表页面中更新状态
如何通过 Laravel DataTable 显示 HTML?
Laravel 8 Yajra DataTable 在同一页面刷新