0

我似乎无法正确处理我拥有的这份清单。我有 x 个表,其行数在 10 到 200 之间。每一行代表一个项目,如果您选择一个或多个复选框,它会循环遍历这些复选框并在需要时更新/添加/删除行。我该怎么做呢?

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

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

4

2 回答 2

1

您应该尝试制作二维数组(如果我理解得很好)。您也可以忘记隐藏字段:

checkboxes[<?= $id ?>][own]checkboxes[<?= $id ?>][special]。你应该在 php 中有这样一个数组:

$_POST['checkboxes'] => array(
                         1 => array(
                              'own' => 'on'
                         ),
                         3 => array(
                              'own' => 'on',
                              'special' => 'on
                         )
                    );

在这里,您检查了 id "1" 的 "own" 复选框和 id "3" 的 "own" 和 "special" 复选框。

于 2013-03-26T10:06:13.060 回答
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
于 2013-03-26T22:04:26.490 回答