jquery - Laravel:无法将正确的参数传递给 DataTable 按钮中的路由
问题描述
我使用的是普通的桌子和我所有的按钮都可以正常工作。然后我遇到了数据表,所以我实现了数据表来列出我的员工模型中的所有员工。所以我使用 JQuery 将数据提供给我的表。下面是代码:
$(document).ready( function () {
$('.table').DataTable({
processing: true,
serverSide: true,
ajax : '{!! route('employees.search') !!}',
columns: [
{ data: 'name', name: 'name'},
{ data: 'empid', name: 'empid'},
{ data: 'user_type', name: 'user_type'},
{ data: 'depots', name: 'depots'},
{ data: 'id', name: 'id',
render: function ( data , row ) {
return '<div style="margin-left:1%;">
<button class="btn btn-round btn-primary btn-sm"
onclick="showMessage('+data+')">Delete</button>
<form id="'+data+'" method="POST" action=" {{
route("employees.destroy","'+data+'") }} ">
<input type="hidden" name="_method"
value="delete"> {{ csrf_field() }} </form> </div>';
}
},
],
});
});
所以在上面的代码中,我渲染了一个按钮来执行删除功能。不知何故,当我将参数传递给我的路线 {{route("employees.destroy","'+data+'") }}
它作为数据返回,而我期望它是行的 id。以下是我的删除功能代码:
public function destroy($id)
{
return $id;
if ( Auth::check() ) {
$findResult = AppUser::where('id','=',$id)->first();
$user = User::where('email',$findResult->email)->first();
if ($findResult->delete())
{
if ($user) {
$user->delete();
}
return redirect()->route('employees.index','all')->with('success' , 'Employee deleted successfully!');
}
return back()->withInput()->with('error' , 'Employee could not be deleted');
}
}
所以我得到的回应是错误的。有人可以告诉我将参数发送到路线的替代方案或解决方案吗?我期望该值是行的 id 但我得到的响应只是'+data+'。
解决方案
我建议如下:
addColumn()
使用方法返回 URL 作为数据的一部分。例如:// ... skipped ... ->addColumn('delete_url', function ($model) { return route('backend.model.delete', $model); });
给“删除”按钮一个特殊的类,例如“btn-delete”。
使用特殊类“btn-delete”将事件处理程序附加到“删除”按钮。单击按钮时,使用来自
delete_url
数据属性的 URL 发出 Ajax 请求。
推荐阅读
- jsf - 为什么选择浏览器刷新按钮不会将我的 JSF 表单中的已编辑字段替换为来自服务器的值?
- python - Celery 无法使用 Django 2.1.1 找到任务或设置
- c++ - 除非声明并返回临时值,否则函数返回疯狂值?
- java - 如何在 Java 中使用“Scanner.hasNext”完成程序
- eclipse - 在 Xtext/MWE2 中导入 ecore 包/引用的资源
- php - 获取 og:image 的函数
- rxjs - rx.js 6.3 中的 queueScheduler 是同步的 - 如果我使用 queueScheduler,为什么这个示例不会导致 SO?
- python-3.x - Dataframe.update() 中的“join”参数
- r - Lubridate 无法正确解析包含工作日/月/日/年的日期
- sql - SQL中的运算符和子句有什么区别?