我正在尝试通过 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);
}
我试过使用产品::create([]); 但它也不起作用。 它添加了第一个产品的副本,返回的 ID 是来自发票 ID 的 ID。
出了什么问题?Ajax 响应数据或将值插入数据库?
在我看来,您的 ajax 调用不会返回有关您创建的产品的任何内容。
也许是这样的?
public function product(Request $request) {
// ...
return response()->json($prod->toArray(), 200);
}