我正在尝试使用 ajax 将 id 传递给我的 Controller 。
我想在 ajax URL 中使用 id var,但它不起作用。
我在哪里设置 ID
<input type="checkbox" class="form-control traite" data-id="{{ $conversation->id }}"></td>
jquery 函数
$(document).on('click', '.traite', function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
var id = $(this).data('id');
$.ajax({
url: "{{ route('traitements.change_traite_conversation', " + id + ") }}",
type:"POST",
dataType:"JSON",
data: {
"_token": "{{ csrf_token() }}",
"id" : id
},
success: function() {
console.log("Updated");
},
error: function(xhr) {
console.log(xhr.responseText); // this line will save you tons of hours while debugging
// do something here because of error
}
});
console.log("Error");
});
web.php
Route::post('conversation/{id}/traiter', 'TraitementController@change_traite_conversation')->name('traitements.change_traite_conversation');
我得到的错误
{
"message": "Undefined variable: id",
[...]
}
我不明白为什么我不能将我的 ID 传递给 ajax URL,我通常可以控制台记录它并且它正在工作!
最佳答案
HTML。在数据属性中传递它而不是 id
你可以传递 url
不是吗?
<input type="checkbox" class="form-control traite" data-url="{{ route('traitements.change_traite_conversation', $conversation->id) }}"></td>
Jquery,在 jquery 中获取数据 url。
$(document).on('click', '.traite', function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
var url = $(this).data('url');
$.ajax({
url: url,
否则,您可以直接传递 php 变量,但在您的情况下您需要动态传递,所以我认为它不会起作用。
$.ajax({
url: "{{ route('traitements.change_traite_conversation', $conversation->id) }}",
关于javascript - 无法将变量传递给ajax url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58432397/