使用 laravel 和 ajax 时,如何阻止重复内容出现在我的视图中?

How do I stop duplicate content from appearing in my view when using laravel and ajax?

提问人:Vincent Chibueze 提问时间:11/22/2022 更新时间:11/22/2022 访问量:35

问:

这是我的观点(阿贾克斯)

                $('#basicInfoForm').submit(function(e){
                        e.preventDefault();
                        let formData = new FormData(this);
                        $.ajax({
                            type: "POST",
                            url: "{{route('profile.basic_info')}}",
                            dataType: 'json',
                            data: formData,
                            contentType: false,
                            processData: false,
                            beforeSend:function(){
                                $("#fountainG").fadeIn(1000);
                            },
                            success: function(response){
                               $.each(response.errors, function (key, value) { 
                                 $("#fountainG").fadeOut(1000);
                                 $('.alert-danger').fadeIn(2000);
                                 $('.alert-danger').append('<span>'+value+'</span>'+'<br>');
                                 setTimeout(function() {
                                    $('.alert-danger').fadeOut(4000, 'swing');
                                }, 3000);
                                 
                               });
                            },
                            error: function(data){
                                iziToast.error({
                                title: 'Upload Error',
                                message: data.avatar,
                                position: 'topRight'
                            });
                            }
                        });
                    });

而且,这是我的控制器

    public function updateBasicInformation(Request $request)
    {
        $basic_info = Validator::make($request->all(), [
            'fullname' => 'required|min:2|max:255',
            'phone_number' => 'required|numeric|min:10',
            'email' => 'required|unique:users',
            'country' => 'required',
            'address' => 'required',
        ], [
            'phone_number.min' => "The phone number must be at least 10 digits",
        ]);

        if($basic_info->fails())
        {
            return response()->json([
                'errors'=> $basic_info->errors()->all()
            ]);
        }
    }

所以,基本上,有带有 ID 的形式:

basicInfoForm

并且带有该类的 div 显示错误。但是,当我多次提交表单时,它不断重复错误,即使是那些已经正确验证的错误。-alert-danger

错误

请问我该如何解决这个问题?

我尝试更改为 但没有任何区别。dataTypejson

我是 Ajax 和 Laravel 的新手

PHP Ajax Laravel 验证

评论


答:

0赞 Ali Raza 11/22/2022 #1

每次提交时,清除 UI 中的所有错误:

$('#basicInfoForm').submit(function(e){

e.preventDefault();

$('.alert-danger').remove();

// ...

});
0赞 ahmed ramzan 11/22/2022 #2

在每次提交调用中,您都在追加错误,而不是清除以前的错误。 您可以这样做来解决这个问题。

从 DOM 中删除以前的错误 div,并在 AJAX 成功时附加新的错误 div。

success: function(response){

        $('.alert-danger').remove();

        $.each(response.errors, function (key, value) { 
        //

    }