首页 > 解决方案 > 带有ajax的Laravel不保存数据

问题描述

您好我正在尝试在我的 laravel 项目中实现 ajax 以保存记录。

首先,我在视图中显示产品列表。以下脚本用于从数据库中获取产品。这没有任何问题:

<script>
    var Show = function(id) {
        var route = "{{url('products')}}/"+id+"/showProduct";
        $.get(route, function(data) {
            $("#name").val(data.pro_nom);
            $("#price").val(data.pro_prec);
            $("#pro_id").val(data.pro_id);  
        });
    }
</script>

这是我在模式中发送数据的按钮

<button type="button" class="btn btn-primary" id="addProduct">Save</button>

这是 Ajax 脚本:

$("#addProduct").click(function() {
    var dc_cant=1;
    var col_id=1;
    var pro_id=$("#pro_id").val();
    var route="{{action('ProductsController@store')}}";
    var token=$("#token").val();
 
    $.ajax({
        url: route,
        headers:{'X-CSRF-TOKEN':token},
        type:'POST',
        dataType:'json',
        data: {    
            pro_id: pro_id,
            dc_cant: dc_cant,
            col_id: cold_id
        },
        success: function(data) {
            if (data.success=='true') {
                alert("save");     
            }
        },
        error: function(data) {
            alert("error");
        }
    });
});

这是控制器中的代码:

public function store(Request $request)
{
    if ($request->ajax()) {           
        $result = detail_product::insert($request->all());

        if ($result) {
            return response()->json(['success'=>'true']);
        } else {
            return response()->json(['success'=>'false']);
        }            
    }       
}

没有记录保存,我不知道我的代码在哪里失败,这是我第一次尝试实现 ajax,直到模态显示它的工作数据的那一刻,但是当我按下保存它什么都不做

标签: ajaxlaravel

解决方案


如果您没有添加 csrf 令牌的元标记,您可以添加它。

 <meta name="csrf-token" content="{{ csrf_token() }}" />

然后在jquery中,

<script>
    $(document).ready(function(){
        var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
        $(".postbutton").click(function(){
            $.ajax({
                url: '/storeProduct', //put your url here directly
                type: 'POST',
                /* send the csrf-token and the input to the controller */
                data: {_token: CSRF_TOKEN, pro_id: pro_id,
                                           dc_cant: dc_cant,
                                           col_id: col_id
                      },
                dataType: 'JSON',
                /* here 'data' is the response of the Controller */
                success: function (data) { 
                    $(".writeinfo").append(data.msg); 
                }
            }); 
        });
   });    
</script>

$request->pro_id, $request->col_id以.. 等方式访问数据。


推荐阅读