我似乎无法通过这个列表正确地工作。我有x个表,行数在10到200之间。每行代表一个项目,如果你选择一个或多个复选框,它会遍历那些并在需要时更新/添加/删除行。我该怎么做呢?
我目前有一个带[id]的隐藏字段,以及两个带有[]和特殊[]的复选框。 ID显然是唯一的项ID,两个复选框表示您是拥有正常版本还是特殊版本(或者没有,或两者都有)。当我遍历它们时,所有ID都会被回显,但我似乎无法将两个复选框的值连接到它们。一个简单的for循环将不起作用,因为所有ID都被回显,因此复选框没有正确循环。
我对PHP有点了解,所以用你所拥有的东西打我!
答案 0 :(得分:1)
你应该尝试制作二维数组(如果我理解的话)。您还可以忘记隐藏的字段:
checkboxes[<?= $id ?>][own]
和checkboxes[<?= $id ?>][special]
。你应该在php中有这样一个数组:
$_POST['checkboxes'] => array(
1 => array(
'own' => 'on'
),
3 => array(
'own' => 'on',
'special' => 'on
)
);
在这里你已经检查了#34;拥有&#34; id&#34; 1&#34;的复选框和#34;拥有&#34;和#34;特别&#34; id&#34; 3&#34;。
的复选框答案 1 :(得分:0)
最终产品:
<input type="checkbox" name="product[<?php echo $product['id']; ?>][own]" /> <!-- this is row 20 of the database -->
<input type="checkbox" name="product[<?php echo $product['id']; ?>][own]" /> <!-- row 64 -->
<input type="checkbox" name="product[<?php echo $product['id']; ?>][special]" /> <!-- row 127 -->
提交后,此代码:
foreach($_POST['product'] as $id => $p) {
echo "ID: ".$id." - Own: ".$p['own']." - Special: ".$p['special']."<br />";
}
会产生这样的结果:
ID: 20 - Own: on - Special:
ID: 64 - Own: on - Special:
ID: 127 - Own: - Special: on