存储所选项目中的多个值 - Javascript

时间:2017-11-08 12:47:21

标签: javascript laravel

我正在尝试从我的JS视图中检索数据到我的控制器并保存到我的数据库。对于我的item_id,我能够检索每个所选项目的ID。

但是当我输入所选项目的数量时,在我的数据库中,为所有选定项目显示的数量是输入的第一个数量。

所以,如果我有,

Item: HpBook

Qty : 5

Item: Mac

Qty: 10

在数据库中,mac的数量也保存为5.我做错了什么?

JS

$('.form').append(
        '<div class="container"> '+
        '<input type="hidden"  value='+item.id+' data-id="'+item.id+'"   name="item_id[]" />'+  
        '<input type="text" class="quantity" placeholder=" Enter Value " name="quantity" />'+
        '<p class="total" >Figures  $:<span name="figures" id="figures"></span></p>'+
         '</div>'

);

控制器

 $item = new Item(array(
             'total' => $request->get('figures'),                    
         ));

 $item->save();
 $item->products()->attach($request->get('item_id'),['quantity' => $request->get('quantity')]);

2 个答案:

答案 0 :(得分:0)

你的js遗失了[]

应该是:

$('.form').append(
    '<div class="container"> '+
    '<input type="hidden"  value='+item.id+' data-id="'+item.id+'"   name="item_id[]" />'+  
    '<input type="text" class="quantity" placeholder=" Enter Value " name="quantity[]" />'+
    '<p class="total" >Figures  $:<span name="figures" id="figures"></span></p>'+
     '</div>'

);

答案 1 :(得分:0)

在HTML中,修正数量名称的拼写错误:

'<input type="text" class="quantity" placeholder=" Enter Value " name="quantity[]" />'+

在您的控制器中,首先为产品制作一个数组,然后将其附加到模型中:

$products = [];
foreach($request->get('item_id') as $key => $id) {
    $products[$id] = ['quantity' => $request->get('quantity')[$key]];
}
$item->products()->attach($products);