Laravel 8-使用 AJAX 插入后

raogr8fs  于 2023-06-24  发布在  其他
关注(0)|答案(2)|浏览(86)

大家好,我正在使用laravel8和 AJAX 在数据库中插入记录。
我的问题是,在我插入记录后,它会自动转到新页面,但它只是包含一个响应作为JSON对象(下面的页面截图)
我怎样才能防止这种情况并以正常的方式重定向。
我的控制器代码:

public function store(Request $request){
        $user = User::create($request->all());
        return response()->json(['url'=>url('/users')]);
}

我的观点:

$.ajax({
            type: "POST",
            url: "{{route('users.store')}}",
            data:{
             name:        $("#name").val(),
             email :      $("#email").val(),
             image :  $("#image").val(),
            },
             success: function(response){

                 if(response){
                $("#userTable tbody").prepend(
                    '<tr><td>'+ response.id+'</td><td>'
                     + response.name+'</td><td>',
                     + response.email+'</td><td>',
                     + response.image+'</td><td>'
            )
              window.location.href=response.url;

                     $("#userForm")[0].reset();
                $("#userModel").model('hide');

            }

这里是页面

对不起我的英语不好

zbdgwd5y

zbdgwd5y1#

问题出在这里return response()->json(['url'=>url('/users')]);
你可以只返回每个例子return response()->json(data);
下面是一个例子:

控制器:

public function store(Request $request){
        $user = User::create($request->all());
        $data = collect();
        
        //TODO: find a way to catch user data you created
 
        $data->push([
           'email' => (your attribute),
           'name' => (your attribute),
           'image' => (your attribute),
           'id' => (your attribute),
           'url' => (your url),
        ]);

        return response()->json($data);

}

AJAX :

$.ajax({
            type: "POST",
            url: "{{route('users.store')}}",
            data:{
             name:        $("#name").val(),
             email :      $("#email").val(),
             image :  $("#image").val(),
            },
             success: function(data){

                 if(data){
                $("#userTable tbody").prepend(
                    '<tr><td>'+ data.id+'</td><td>'
                     + data.name+'</td><td>',
                     + data.email+'</td><td>',
                     + data.image+'</td><td>'
            )
              window.location.href=data.url;

                     $("#userForm")[0].reset();
                $("#userModel").model('hide');

            }
klr1opcd

klr1opcd2#

如果提取数据一个变量,则

public function store(Request $request){
        $user = User::create($request->all());
        return response()->json($user);
}

$.ajax({
                url: '{{ url('attendance/branchWiseEmployees') }}',
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
                },
                type:"POST",
                data:{branch_id:branch_id,company_id:company_id},
                success:function(data){
                    if(data){
                       
                       
                        
                        $.each(data,function(key,value){
             // $("#user_id").append('<option value="'+key+'">'+value+'</option>');
                        });
 $("#userTable tbody").append(
                    '<tr><td>'+ data.id+'</td><td>'
                     + data.name+'</td><td>',
                     + data.email+'</td><td>',
                     + data.image+'</td><tr>'
            )

                    }
                }
            });

相关问题