javascript - 无法将变量传递给ajax url

标签 javascript php ajax laravel

我正在尝试使用 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/

相关文章:

javascript - javascript中如何将字符串转换为函数?

javascript - 当我尝试将 JSON 编码数组发送到 jquery 时,发生 500 内部服务器错误

javascript - 根据选择列表显示更多 div 和表单

php - 使用 .htaccess 和友好 url 的网站翻译

javascript - Backbone.js 模型与集合

javascript - 所有 jQuery ajax 调用的默认设置

javascript - jquery html() 的问题

javascript - 检查颜色是否为字符串 ('white' === color?//true, 'bright white gold' === color?//false)

php - 缺少 json 扩展名。请检查您的 PHP 配置

javascript - 如何使用Appium更改真实设备上的时间?