提交動態表單但無法將值存盤到資料庫。我是初學者,我堅持了 2,3 天,但無法解決問題。
請求值類似于 {"_token":"PTGmyf3UZrD1TgKDJcREcKia9VFRLYaP5kNaAkAU","id":["28","31"],"name":["Fogg","zack"],"rate":["70" ,"5000"],"數量":["1","1"],"提交":"提交"}
<form name="" id="form" action="{{ url('/store_order_item') }}" method="POST">
@csrf
<table class="table table-bordered" id="dynamic_field">
<thead>
<tr>
<th>Product Id</th>
<th>Name</th>
<th>Rate</th>
<th>Quantity</th>
<th>Amount</th>
<th>Action</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<h6>Grand Total: <span id= "grandtotal"></span> </h6>
<input type="button" name="" id="" class="btn btn-sm btn-danger" value="Cancel">
<input type="submit" name="submit" id="submit" class="btn btn-sm btn-secondary" value="Submit"/>
</form>
</div>
<script type="text/javascript">
var i = 1;
$(document).ready(function(){
var button_id1 ;
$('#button').click(function(){
let namesearch = $('#search').val();
let idsearch = $('#idsearch').val();
if ((namesearch == '')&&(idsearch == '')){
return false;
}
$.ajax({
type:"GET",
url: "/pos_search_ajax",
data: { name: namesearch, id: idsearch },
success: function(response) {
$('#dynamic_field').append('<tr id="row_' i '"><td><input id="id_' i '" type="text" name="id[]" value="' response[0].id '" readonly></td><td><input id="name_' i '" name="name[]" type="text" value="' response[0].name '" readonly></td><td> <input id="rate_' i '" name="rate[]" type="text" value="' response[0].price '" readonly></td><td><input id="quantity_' i '" onchange="change(' i ')" name="quantity[]" type="number" min=1 value="1"></td><td class="total" id="total_' i '" name="total[]">' response[0].price '</td><td> <button type="button" onclick="remove_tr(' i ')" class="btn btn-danger btn-sm">Delete</button></td></tr>');
total();
i ;
}
});
# this is the Controller #
public function store(Request $request)
{
foreach($request->all() as $itm)
{
$items = New OrderItem();
$items->product_id = $request->id;
$items->name = $request->name;
$items->save();
}
}
uj5u.com熱心網友回復:
如果您request總是這樣格式化,那么 usingforeach($request->all() as $itm)只會回傳您發送的內容,值id將是["28","31"]等等。所以你可以嘗試這樣的事情:
$data = $request->all();
for ($i=0; $i < count($data['id']); $i ) {
$item = new OrderItem();
$item->product_id = $data['id'][$i];
$item->name = $data['name'][$i];
$item->save();
}
該代碼將遍歷id,并且產品名稱必須與 id 的順序相同。
uj5u.com熱心網友回復:
具有相同名稱的多個請求引數需要[]在其名稱屬性上附加陣列符號(),并且您這樣做是正確的,例如<input name="name[]" ....
這使得引數是陣列。(不是單個值)
因此,當您訪問引數時,您需要使用索引號再訪問 1 個深度(以獲取第 n 個專案)。
要訪問所有專案,您需要回圈該引數。
并且引數不僅僅是一個(,,,,id),name它需要一個引數作為回圈的基礎。
基礎引數可以是任何東西,但通常首選識別符號。(例如,身份證)ratequantity
撰寫您自己的代碼類似于@TheArka 的答案。但建議你知道這是怎么回事,為什么會這樣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/411070.html
標籤:
