如何在 ajax 路由数据表 Laravel 中传递 user_id
How to pass user_id in ajax route datatable Laravel
我在 Laravel 中有一个数据表,这是我的代码
$(function() {
var user_id = $(this).data('user_id');
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
var table = $('.data-table').DataTable({
paging: true,
info: true,
autoWidth: false,
responsive: true,
processing: true,
serverSide: true,
ajax: "{{ route('detail.user', 'user_id')}}",
columns: [{
data: 'DT_RowIndex',
name: 'DT_RowIndex',
orderable: false,
searchable: false,
},
{
data: 'title',
name: 'title',
orderable: false,
},
{
data: 'content',
name: 'content',
orderable: false,
visible: false,
},
{
data: 'progress',
name: 'progress'
},
{
data: 'status',
name: 'status'
},
{
data: 'kpi',
name: 'kpi'
},
{
data: 'target_selesai',
name: 'target_selesai'
},
{
data: 'action',
name: 'action',
orderable: false,
searchable: false
},
]
});
$('body').on('click', '.detailProduct', function() {
...
});
$('#saveBtn').click(function(e) {
...
});
$('body').on('click', '.deleteProduct', function() {
...
});
});
我想从 url 参数中获取 user_id 值(例如:http://127.0.0.1:8000/detail/1000000004 ),我试过上面的代码,但它会 return 空值。
好像我写了错误的代码来获取 url 参数。因为,如果我将 ajax: "{{ route('detail.user', 'user_id')}}",
更改为 ajax: "{{ route('detail.user', '1000000004')}}",
,程序将按预期运行。我该怎么办?提前致谢
您不能使用 JavaScript 在 PHP 代码中设置变量。您不应在动态 JavaScript 代码上使用 PHP 代码。有 2 个选择:
使用静态路径代替Laravel路由,只需将ajax: "{{ route('detail.user', 'user_id')}}"
改为ajax: "/detail/"+user_id
使用 Laravel blade 查看参数发送 user_id
变量。在你的控制器上定义 user_id 如下:
return view('index',
['user_id', 1000000004]
);
然后在 blade 上调用它作为 php 变量 ($user_id
) 示例 ajax: "{{ route('detail.user', $user_id)}}"
- 确保url in routes/web.php,提供一个变量传递,ex /name-routes/{id}
- 然后在您的控制器函数中获取数据 ID,函数 function_name($id){ }
- 最后一个确保格式 return json 格式如下 { data : [ name : "value name 1", name : "value_name2" ] }
我在 Laravel 中有一个数据表,这是我的代码
$(function() {
var user_id = $(this).data('user_id');
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
var table = $('.data-table').DataTable({
paging: true,
info: true,
autoWidth: false,
responsive: true,
processing: true,
serverSide: true,
ajax: "{{ route('detail.user', 'user_id')}}",
columns: [{
data: 'DT_RowIndex',
name: 'DT_RowIndex',
orderable: false,
searchable: false,
},
{
data: 'title',
name: 'title',
orderable: false,
},
{
data: 'content',
name: 'content',
orderable: false,
visible: false,
},
{
data: 'progress',
name: 'progress'
},
{
data: 'status',
name: 'status'
},
{
data: 'kpi',
name: 'kpi'
},
{
data: 'target_selesai',
name: 'target_selesai'
},
{
data: 'action',
name: 'action',
orderable: false,
searchable: false
},
]
});
$('body').on('click', '.detailProduct', function() {
...
});
$('#saveBtn').click(function(e) {
...
});
$('body').on('click', '.deleteProduct', function() {
...
});
});
我想从 url 参数中获取 user_id 值(例如:http://127.0.0.1:8000/detail/1000000004 ),我试过上面的代码,但它会 return 空值。
好像我写了错误的代码来获取 url 参数。因为,如果我将 ajax: "{{ route('detail.user', 'user_id')}}",
更改为 ajax: "{{ route('detail.user', '1000000004')}}",
,程序将按预期运行。我该怎么办?提前致谢
您不能使用 JavaScript 在 PHP 代码中设置变量。您不应在动态 JavaScript 代码上使用 PHP 代码。有 2 个选择:
使用静态路径代替Laravel路由,只需将
ajax: "{{ route('detail.user', 'user_id')}}"
改为ajax: "/detail/"+user_id
使用 Laravel blade 查看参数发送
user_id
变量。在你的控制器上定义 user_id 如下:return view('index', ['user_id', 1000000004] );
然后在 blade 上调用它作为 php 变量 (
$user_id
) 示例ajax: "{{ route('detail.user', $user_id)}}"
- 确保url in routes/web.php,提供一个变量传递,ex /name-routes/{id}
- 然后在您的控制器函数中获取数据 ID,函数 function_name($id){ }
- 最后一个确保格式 return json 格式如下 { data : [ name : "value name 1", name : "value_name2" ] }