我正在尝试使用ajax将ID传递给我的控制器。
我想在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,我通常可以console.log它并且可以正常工作!
答案 0 :(得分:1)
HTML 。将其传递给data属性而不是id
,您可以传递url
吗?
<input type="checkbox" class="form-control traite" data-url="{{ route('traitements.change_traite_conversation', $conversation->id) }}"></td>
jQuery ,在jquery中获取该数据网址。
$(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) }}",
答案 1 :(得分:1)
您应该在HTML中添加fullurl
attr
,然后使用javascript
或jQuery
。
在 HTML 文件中:
<input type="checkbox" class="form-control traite" data-id="{{ $conversation->id }}" data-fullurl="{{ route('traitements.change_traite_conversation', $conversation->id) }}"></td>
在 Javascript / JQuery 脚本中:
$(document).on('click', '.traite', function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
var URL = $(this).data('fullurl');
var id = $(this).data('id');
$.ajax({
url: URL,
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");
});