如何从Ajax请求中将新产品添加到dabase中

时间:2017-10-17 04:46:45

标签: ajax laravel-5

我正在尝试通过Ajax请求从编辑表单中插入新产品,我将返回所有插入的值,而是添加新产品,它会在列表中添加第一个产品。我做错了什么?

这是我的Ajax请求:

$(document).on('change','.qty',function(){


    var id = $("#inv_id").val();
    var tr = $(this).closest('tr');
    var name = tr.find(".name").val(); 
    var price = tr.find(".price").val(); 
    var qty = tr.find(".qty").val(); 
    var total = tr.find(".total").val(); 

    $.ajax({
        type: "POST",
        url: '/product',
        data: {id: id, name: name, price: price, qty: qty, total: total, '_token':$('meta[name="csrf-token"]').attr('content')},
        success: function( data ) {

            console.log(data);

        },
            error: function(data){
            alert("fail");

            }
    });

});

这是我的控制器

public function product(Request $request){



        $prod = new Product;
        $prod->invoice_id = $request->id;
        $prod->name = $request->name;
        $prod->price = $request->price;
        $prod->qty = $request->qty;
        $prod->total = $request->total;
        $prod->save();


    return response()->json(['responseText' => 'Success!'], 200);




}

我尝试过使用Product :: create([]);但它也没有用。它会添加第一个产品的副本,其中返回的ID是来自发票ID的ID。

1 个答案:

答案 0 :(得分:0)

有什么问题? Ajax响应数据或插入值到db?

在我看来,您的ajax调用不会返回有关您创建的产品的任何信息。

也许是这样的?

public function product(Request $request) {

    // ...

    return response()->json($prod->toArray(), 200);
}