我需要显示一个元素列表,并在每个元素之后动态添加一个删除按钮。每当用户按下删除按钮时,应删除相应的元素,并显示列表的其余部分。 我写了以下PHP代码来完成这个:
for($i=0;$i<count($b);$i++)
{
$a=$b[$i];
echo "<li>$b[$i]</li> ";
$p="remove"."$j";
echo "<form action='' method='post'> <input class='z' type='submit' name='$p' value='delete'> </form>";
$j++;
}
if($_POST['$p'])
{
//code for deleting
}
问题是每当用户按下删除按钮时,只有添加的最后一个元素被删除而其余的按钮都不起作用。请告诉我如何检测动态按下了哪个按钮并使用php删除相应的元素。
谢谢
答案 0 :(得分:1)
您需要将每个按钮与其各自的元素相关联。你想用id或隐藏的输入动态地做这个。
for($i=0;$i<count($b);$i++)
{
$a=$b[$i];
echo "<li>" . $b[$i] . "</li> ";
$p="remove" . $i;
echo "<form action='' method='post'>";
echo "<input type='hidden' name='item' value='" . $i . "' />";
echo "<input class='z' type='submit' name='delete' value='delete'> </form>";
$i++;
}
if($_POST['delete'])
{
$item = $_POST['item'];
//code for deleting $item
}
答案 1 :(得分:0)
您将每个删除按钮都放在自己的表单中 - 您还可以使用要删除的ID添加隐藏输入吗?
echo "<form action='' method='post'>\n";
echo "<input type='hidden' name='toDelete' value='" .$i ."'>\n";
echo "<input class='z' type='submit' name='$p' value='delete'>\n";
echo "</form>\n";
然后,您将使用以下命令查找要删除的元素:
if(isset($_POST['toDelete'])) {
// $_POST['toDelete'] has the index number of the element to remove
}