【问题标题】:Laravel/Ajax delete function not refreshing my table after successLaravel/Ajax 删除功能成功后不刷新我的表
【发布时间】:2021-06-25 08:53:01
【问题描述】:

当我在我的删除 ajax 中添加我的函数 fetchcategory(); 时,我的表没有刷新:

        $(document).on('click', '.delete_category_btn', function (e) {
            e.preventDefault();
            var cat_id = $('#delete_cat_id').val();
            alert('Category Deleted!');
            // location.reload();  
            $('#deleteCategoryModal').modal('hide'); 
            fetchcategory();
            
            //token taken from laravel documentation
            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            $.ajax({
                type: "DELETE",
                url: "/clinical/bbr-category-configuration-delete/"+cat_id,
                dataType: "dataType",
            });
        });

作为参考,我的屏幕截图显示了警报,显示删除功能如下:

另一个参考是我这里的add函数在添加新表后重新加载页面:

            $.ajax({
                type: "POST",
                url: "/clinical/bbr-category-configuration",
                data: category_data,
                dataType: "json",
                success: function (response){
                    console.log(response);
                if(response.status == 400) {
                    $('#category_formCheck').html("");
                    $('#category_formCheck').addClass('alert alert-danger');
                    $.each(response.errors, function (key, err_values) {
                        $('#category_formCheck').append('<li>'+err_values+'</li>');
                    });
                    }
                else  
                  {
                    $('#category_notif').html("");
                    $('#category_notif').addClass('alert alert-success');
                    $('#category_notif').text(response.message);
                    $('#createCategory').modal('hide');
                    fetchcategory();
                    }
                }
            });

我的另一个问题是我尝试在里面添加警报和刷新功能:

            $.ajax({
                type: "DELETE",

但他们没有出现,所以我把他们放在on(click里面

为什么我的 delete ajax 没有刷新我的表?

更新:

  • 我知道location.reload();,但添加它会破坏目的。
  • 数据确实被删除了,但我必须手动刷新整个页面才能看到更改。

【问题讨论】:

  • 你可以使用 location.reload(); 重新加载页面
  • 当您将它们放在onClick 中时,它们会在项目被删除之前被调用。相反,您必须找出执行删除后没有调用它们的原因。删除成功了吗?
  • @JohnLobo 是的,我知道,但这违背了 ajax 的目的
  • @shaedrich 是的,删除成功,请更新我的描述
  • 尝试将 reload 函数重新添加到您的删除成功回调中,并在其中添加控制台日志以检查它是否被调用。而且您的浏览器开发工具中没有任何错误消息?

标签: ajax laravel function sql-delete


【解决方案1】:

您可以在 ajax 成功中做到这一点。我相信fetchcategory() 方法正在将数据填充到表中

<script>
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });


    $(document).on('click', '.delete_category_btn', function (e) {
        e.preventDefault();
        var cat_id = $('#delete_cat_id').val();

        // location.reload();
        $('#deleteCategoryModal').modal('hide');

        $.ajax({
            type: "DELETE",
            url: "/clinical/bbr-category-configuration-delete/"+cat_id,
            dataType: "dataType",
            success: function(data) {
                alert('Category Deleted!');
                fetchcategory();
            },
            error: function() {
                alert('Error occured');
            }
        });
    });
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 2018-10-22
    相关资源
    最近更新 更多