我正在尝试通过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。
答案 0 :(得分:0)
有什么问题? Ajax响应数据或插入值到db?
在我看来,您的ajax调用不会返回有关您创建的产品的任何信息。
也许是这样的?
public function product(Request $request) {
// ...
return response()->json($prod->toArray(), 200);
}