我需要你的建議。我從數據庫獲取數據到表:ID,名稱。 表格中有Actions:Delete,Enable,Block。當選擇行動刪除 時,我想,分別記錄將被刪除。 但是,我的腳本不起作用,並且總是刪除最後一條記錄,即使我選擇了另一條記錄 。我認爲問題在於,所有記錄的名稱和隱藏輸入 名稱是相似的。但我找不到方法,如何用不同的名字創建 。 歡迎任何建議。從表格中刪除錯誤的記錄
HTML:
<form method='post'>
<table border='1'>
<tr>
<th> ID </th>
<th> Name </th>
<th> Action </th>
</tr>
代碼:
$db = new PDO('mysql:host=localhost;dbname=****;charset=utf8', '**', '**');
$query = $db->query("SELECT ID,statusas,login,vardas,email FROM users");
while($row = $query->fetch(PDO::FETCH_BOTH)) {
echo "<tr><input type='hidden' name='id' value='".$row[0]."'>";
echo "<td>".$row[0]."</td>";
//echo "<td>".$row[1]."</td>";
echo "<td>".$row[2]."</td>";
//echo "<td>".$row[3]."</td>";
// echo "<td>".$row[4]."</td>";
echo "<td><select name='action'>
<option value='choose'>Choose..</option>
<option value='delete'> Delete </option>
<option value='enable'> Enable </option>
<option value='block'> Block</option>
</select></td>";
echo "</tr>";
}
echo "<br><input type='submit' name='submit'></table></form>";
if($_POST['submit']) {
if ($_POST['action']== 'delete') {
echo $_POST['id']; // delete query, but now I am just checking if I get a proper ID.
}
}
else {
echo "bad";
}
我的猜測是你需要用自己的形式來包裝每一行。在當前狀態下,所有行都使用相同的格式,因此只需使用'name =「id」'最後一個元素進行刪除即可。 – Supericy
好的,將嘗試:) –
@Supericy:不是必須的,只需要使name ='action [$ row [0]]'並在循環中檢查它。 –