我有一个发布公司和发票项目数组(invoice[]
)的表单。
我的表单获得了一些具有相同名称的输入,我想将它们推入数组并将它们作为每一项的一行发布到数据库中。如何在item[0], item[1]...etc
中推送相同数组中的项目以将其正确存储在数据库中?
这是在我的表单中重复的输入组:
<tr>
<td class="col-xs-0">
<input type="checkbox" name="selected[]" class="checkall">
</td>
<td class="col-xs-5">
<textarea type="text" name="invoice[description]" class="form-control" id="description" rows="1" value="{{invdtl_itemDescription}}"></textarea>
</td>
<td class="col-xs-1">
<input type="number" name="invoice[unit]" class="form-control" id="unit" maxlength="5" pattern="\d+(\.\d{2})?">
</td>
<td class="col-xs-1">
<input type="number" name="invoice[qty]" class="form-control" id="qty" maxlength="5" pattern="\d+(\.\d{2})?">
</td>
<td class="col-xs-1">
<input type="number" name="invoice[price]" class="form-control" id="price" maxlength="5" pattern="\d+(\.\d{2})?">
</td>
<td class="col-xs-1">
<input type="number" name="invoice[discount]" class="form-control" id="discount" maxlength="5" pattern="\d+(\.\d{2})?">
</td>
<td class="col-xs-1">
<input type="number" name="invoice[discountPrice]" class="form-control" id="discountPrice" maxlength="5" pattern="\d+(\.\d{2})?">
</td>
<td class="col-xs-1">
<input type="number" name="invoice[total]" class="form-control" id="total" maxlength="5" pattern="\d+(\.\d{2})?">
</td>
<td class="col-xs-1">
<input type="number" name="invoice[vat]" class="form-control" id="vat" value="23" maxlength="3" pattern="\d+(\.\d{2})?">
</td>
</tr>
数组以$.ajax
的形式发布到数据库的两个表中(一个用于invoice_header
,一个用于invoice_details
。发票项目(在表单中重复的项目)应该每次存储在invoice_details
每行。
表格数据:
invoice[client]: 1
invoice[type]: receipt
invoice[invoice]: 155
invoice[date]: 2014-07-07
invoice[shipmethod]: 1
===== Item #1 =====
invoice[description]: Test
invoice[unit]: 1
invoice[qty]: 1
invoice[price]: 1
invoice[discount]: 1
invoice[discountPrice]: 1
invoice[total]: 1
invoice[vat]: 23
===== Item #2 =====
invoice[description]: Test 2
invoice[unit]: 2
invoice[qty]: 2
invoice[price]: 2
invoice[discount]: 2
invoice[discountPrice]: 2
invoice[total]: 2
invoice[vat]: 23