所以我有一個動態生成的表腓更新數據庫
<tr>
<td><?php echo $row['RequestID']?></td>
<td><?php echo $row['FirstName'] . " " . $row['LastName']?></td>
<td><?php echo $row['DateRequested']?></td>
<td><?php echo $row['DateNeeded']?></td>
<td><?php echo $row['TotalPrice']?></td>
<td><?php echo $row['Company']?></td>
<td><?php echo $row['Account']?></td>
<td><?php echo $row['Brand']?></td>
<td><?php echo $quantity?></td>
<td><input type="checkbox" name="bill[]" value=<?php echo '"' . $row['RequestID'] . '"'; if($row['BillBack'] == "1") {echo "checked='checked'"; } ?></td>
</tr>
,我想一行時,選中或取消選中來更新數據庫。
if(isset($_POST['submit'])){//to run PHP script on submit
if(!empty($_POST['bill'])){
// Loop to store and display values of individual checked checkbox.
foreach($_POST['bill'] as $selected){
echo "hello";
$sql2 = "UPDATE Requests SET BillBack = '1' WHERE RequestID = '$selected'";
$result2 = $conn->query($sql2);
}} elseif(empty($_POST['bill'])){
// Loop to store and display values of individual checked checkbox.
foreach($_POST['bill'] as $selected){
echo "hello";
$sql2 = "UPDATE Requests SET BillBack = '0' WHERE RequestID = '$selected'";
$result2 = $conn->query($sql2);
}}
}
現在。 if語句就像一種魅力。對於提交中的每個選中的複選框,該記錄都會更新。這個問題伴隨着取消選中複選框。正如你所看到的,通過查找不爲空的東西來找到複選框。但是,當我刪除感嘆號時,它不會有效地做相反的事情。它也不起作用,因爲它是自己的if語句,作爲一個直接的else語句,並檢查!isset。這是因爲如何檢查輸入?有沒有語法錯誤?我已經做了大約5個小時的錯誤檢查,使用Google搜索,我無法弄清楚。 Thanks guys guys
不要使用'empty()'作爲複選框,使用'isset()'。 –
@ Fred-ii-就像我說的,!isset()仍然不起作用。 isset()用於設置複選框以進行檢查。但!isset()不會將複選框設置爲未選中狀態。 – Sharkn8do
未經檢查的複選框不會發布。所以,你需要找到一種不同的方式來知道哪些複選框沒有被檢查,並相應地進行更新。 – BizzyBob