我有一个看起来像这样的表格:
else
这些输入动态地(使用Jquery)作为行添加,并且可以有一个或者可以有10个,20个你命名它。
问题是当我将这些提交给php时,我无法知道哪些行有"发票"和#34; D.note"选中或取消选中复选框,因为我收到的数组看起来像这样
<div class="row calc">
<div class="large 12 columns">
<div class="large-1 columns">
<label>Quantity</label>
<input name="units[]" type="text" value="1">
</div>
<div class="large-1 columns">
<label>GroupNR</label>
<input name="article_group[]" type="text" value="2401">
</div>
<div class="large-2 columns">
<label>Item name</label>
<input name="article[]" type="text" value="Item 1">
</div>
<div class="large-3 columns">
<label>Description</label>
<input name="description_en[]" type="text" value="Description 1">
</div>
<div class="large-1 columns">
<label>Price/Unit</label>
<input name="unit_price[]" type="text" value="15500">
</div>
<div class="large-1 columns">
<label>Discount</label>
<input max="100" min="0" name="discount[]" type="number" value="0">
</div>
<div class="large-1 columns">
<label>Invoice</label>
<input checked="checked" name="invoice[]" type="checkbox">
</div>
<div class="large-1 columns">
<label>D. Note</label>
<input checked="checked" name="delivery_note[]" type="checkbox">
</div>
<div class="large-1 columns">
<label>Delete</label>
<a class="alert button tiny" onclick="$(this).closest('.calc').remove(); $( '#itemForm' ).trigger('change');">X</a>
</div>
</div>
但实际上,这是排&#34; 0&#34;和&#34; 2&#34;检查,并排#&#34; 1&#34;未选中状态。
这就是我在php / laravel
中迭代它的方法 array:13 [▼
"units" => array:3 [▼
0 => "1"
1 => "1"
2 => "1"
]
"article_group" => array:3 [▼
0 => "2401"
1 => "2201"
2 => "2503"
]
"article" => array:3 [▶]
"description_en" => array:3 [▶]
"unit_price" => array:3 [▶]
"discount" => array:3 [▶]
"invoice" => array:2 [▼
0 => "on"
1 => "on"
]
"delivery_note" => array:2 [▼
0 => "on"
1 => "on"
]
]
那么还有办法提交未经检查的盒子吗? 有一个同名的隐藏输入不会工作,因为我使用没有设置索引的数组,也许我可以让我的ajax调用发送一个数字索引数组,但必须有一个更容易的解决方案
或者是否有人建议另一种解决方案?
问候约翰
答案 0 :(得分:1)
我看到了使用JavaScript解决这个问题的一些可能性:
name="delivery_note[]"
,而是创建枚举:name="delivery_note_1"
(在PHP代码中,循环直到它们不存在)name="delivery_note[1]"
(提问者使用的解决方案) 答案 1 :(得分:0)
您可以为每个复选框指定唯一值。然后,您可以使用该值来标识复选框
检查器:
<?php
foreach($_POST['check'] as $k){
// Value of checkbox that are checked
echo $k;
}
?>
形式:
<form method='POST'>
<input type='checkbox' name='check[]' value='1'>
<input type='checkbox' name='check[]' value='2'>
<input type='checkbox' name='check[]' value='3'>
<input type='checkbox' name='check[]' value='4'>
</form>