如何使用带有id的ajax插入数据而不使用laravel中的表单

Posted

技术标签:

【中文标题】如何使用带有id的ajax插入数据而不使用laravel中的表单【英文标题】:How to insert data using ajax with id and without using forms in laravel 【发布时间】:2021-05-11 01:58:05 【问题描述】:

我尝试像这样在我的 url 中使用 id 插入数据。

<a href="route('absent',$User->id)">absent</a>                                                   
<a href="route('present',$User->id)">present</a>

我的路线是:

Route::get('/present/id', 'UserController@present')->name('present');
Route::get('/absent/id', 'UserController@absent')->name('absent');

路线正在运行。但是页面正在加载,我尝试在不加载的情况下插入数据。我知道如何使用 ajax html 表单方式插入数据。但是如何使用 ajax 使用 id 插入?

【问题讨论】:

可以使用form,通过ajax提交 【参考方案1】:

如果您想在不重新加载的情况下插入数据,您必须将 javascript 函数绑定到您指定的 HTML 链接。 This example 不同,但您可以使用相同的方法来满足您的需求。

【讨论】:

【参考方案2】:

我建议您将锚标记更改为按钮并向它们添加一个类并将它们的路由端点保存在数据属性中:

<button class="action_buttons" data-route="route('absent', $User->id)">absent</button>
<button class="action_buttons" data-route="route('present', $User->id)">present</a>

然后,使用 JQuery 事件处理来检测它们何时被点击,然后简单地使用 Ajax 从按钮的数据属性中获取相关路由并向该路由发送 GET 请求:

$('.action_buttons').on('click', function()

    // Get the route data from the tag.
    let route = $(this).data('route');

    $.ajax(
        url: route,
        type: 'GET',
        success: function(resp) 
            console.log(resp);
        
    );
);

【讨论】:

以上是关于如何使用带有id的ajax插入数据而不使用laravel中的表单的主要内容,如果未能解决你的问题,请参考以下文章

使用 AJAX 和 PHP 提交表单并带有成功响应文本而不刷新页面

如何使用 ajax 提交带有 3 个提交按钮的表单而不重定向到 Laravel 中的表单操作 url?

如何刷新表单中的下拉字段而不使用ajax刷新整个表单?

如何在laravel中插入多条记录而不循环

如何使用ajax将表中的所有数据插入数据库

更新选择列表而不刷新 [PDO/PHP/AJAX]