【发布时间】:2016-11-30 06:50:06
【问题描述】:
我需要你的建议。我从数据库获取数据到表:ID,名称。 表中有操作:删除、启用、阻止。当动作删除 被选中,我想,分别记录将被删除。 但是,我的脚本不起作用并且总是删除最后一条记录,即使我选择 另一个记录。我认为问题是,选择名称和隐藏输入 所有记录的名称都相似。但我找不到方法,如何创建 他们有不同的名字。 欢迎任何建议。
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: 没必要,只要让 name='action[$row[0]]' 并循环检查即可。
标签: php forms select html-table