我有一个表单,其中包含一个从mysql查询动态创建的表。
每行包含一个人名和一个复选框。我想要做的是让人员记录更新为1如果选中复选框,或者如果未选中则更新为0.
问题在于,当我使用下面的代码时,会更新正确数量的记录,但不适合正确的人。 这是相关的表单代码:
<?php
while ($row = mysqli_fetch_array($queryresult,MYSQLI_ASSOC)) {
echo '
<tr>
<td align="left">'. ucfirst($row['CustNumber']) .'</td>
<td align="left">'. ucfirst($row['Firstname']) .' '. ucfirst($row['Surname']) .'</td>
<td align="center">
<input type="hidden" name="cid[]" value="'. $row['CustNumber'] .'">
<input type="hidden" name="cbox[]" value="">
<input type="checkbox" name="cbox[]" value="1">
</td>
</tr>';
}
这是一个简化的处理页面:
foreach ($_POST['cid'] as $key=>$custid) {
$check = $_POST['cbox'][$key];
if ($check == "1") {
$update ="UPDATE customer SET Active = '1' where CustID = '$custid'";
$updatequery = mysqli_query($con,$update);
}
else {
$update ="UPDATE customer SET Active = '0' where CustID = '$custid'";
$updatequery = mysqli_query($con,$update);
}
}
有人可以告诉我哪里出错了吗?我觉得我很亲密,但不能把它们放在一起。
更新: 改变:
<td align="center">
<input type="hidden" name="cid[]" value="'. $row['CustNumber'] .'">
<input type="hidden" name="cbox[]" value="">
<input type="checkbox" name="cbox[]" value="1">
</td>
为:
<td align="center">
<input type="hidden" name="cid['. $row['CustID'] .']" value="'. $row['CustID'] .'">
<input type="checkbox" name="cbox['. $row['CustID'] .']" value="1"'>
</td>
根据showdev的评论,解决了这个问题。谢谢