所以,我正在运行此代码
<td><input type="checkbox" name="bill[]" <?php if ($row['BillBack'] === '1') echo "checked"; ?>></td>
每次都会创建一个复选框
while ($row1 = $result1->fetch_assoc()) {}
运行。所以,现在它有25个条目。 我想要单击提交按钮,如果选中复选框将1抛入数据库,如果不是,则抛出0.现在,检查是否选中了复选框数组的方法是
foreach($_POST['bill'] as $selected){
echo $selected."</br>";
}
,将返回&#34; on&#34;对于每个被选中的人。但是,我的SQL必须看起来像
"UPDATE Requests SET BillBack = '$bill' WHERE RequestID = $row['RequestID']"
所以我假设我需要将foreach循环放在while循环中。但是那回归了576&#34;&#34;&#34;
投掷
(!isset($_POST['bill']))
进入while循环不起作用,因为它似乎被设置,如果它们中的任何一个被设置,即使删除!只返回24&#34; on&#39; s&#34; (只有一个没有切换)。那么有没有一种方法,虽然我仍然有$行[&#39; RequestID&#39;]能够检查是否设置了每个复选框,然后在它仍然与之关联时将其扔进我的表中$ row?
答案 0 :(得分:0)
添加$ row [&#34; requestID&#34;]作为复选框的值。然后你的账单[]将包含你需要的请求ID。
对于复选框,value属性的内容不会出现在用户界面中。 value属性仅在提交表单时有意义。如果在提交表单时复选框处于选中状态,则复选框的名称将与value属性的值一起发送(如果未选中该复选框,则不会发送任何信息)。
IOW,所有未经检查的复选框都不发送任何内容,因此如果只检查了两个,则数组中只有两个项目。没有价值,确定哪两个是不可能的。
foreach ($bill as $id) {
UPDATE Requests SET BillBack = '1' WHERE RequestID = $id;
}
你可以使用&#34;&#34;来优化那个sql。但我在工作,没有时间