如何在链接其他值时勾选复选框

时间:2013-03-26 09:55:21

标签: php arrays loops checkbox hidden

我似乎无法通过这个列表正确地工作。我有x个表,行数在10到200之间。每行代表一个项目,如果你选择一个或多个复选框,它会遍历那些并在需要时更新/添加/删除行。我该怎么做呢?

我目前有一个带[id]的隐藏字段,以及两个带有[]和特殊[]的复选框。 ID显然是唯一的项ID,两个复选框表示您是拥有正常版本还是特殊版本(或者没有,或两者都有)。当我遍历它们时,所有ID都会被回显,但我似乎无法将两个复选框的值连接到它们。一个简单的for循环将不起作用,因为所有ID都被回显,因此复选框没有正确循环。

我对PHP有点了解,所以用你所拥有的东西打我!

2 个答案:

答案 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