【发布时间】:2015-09-26 07:49:17
【问题描述】:
我似乎无法让我的复选框仅更新选中的复选框。现在,当我选中任何框并单击提交时,它会将最后一行标记为 1(即使未选中该行)。为了发布到同一页面并更新任何已选中的框,我在这里遗漏了什么?
while($row = mysql_fetch_array( $result )) {
$addr = $row['address'];
$info = $row['info'];
$date = $row['date'];
$status = $row['status'];
$id = $row['id'];
?>
<tr>
<td><?php echo $id; ?></td>
<td><?php echo $addr; ?></td>
<td><?php echo $info; ?></td>
<td><?php echo $date; ?></td>
<td><?php echo $status; ?></td>
<td><input type="checkbox" name="handled" value="1"><br></td>
</tr>
<?php
}
?>
</table>
<?php
if (isset($_POST['checked'])) {
echo "Posted!";
$sql2 = "UPDATE requests SET status = 1 WHERE id = '".$id."'";
mysql_query($sql2) or die(mysql_error());
}
?>
<br>
<form action="" method="post">
<input name="checked" type="submit"/>
【问题讨论】:
-
如果可以的话,你应该stop using
mysql_*functions。 These extensions 已在 PHP 7 中删除。了解PDO 和 MySQLi 的 prepared 语句并考虑使用 PDO,it's really not hard。 -
听不懂你在问什么
-
把你的名字改成“handled[]”,你会得到一个包含所有复选框的数组。
-
$id将具有表格最后一行的值,这就是您要更新的内容。你想做什么?