0

我需要显示一个元素列表,并在每个元素之后动态添加一个删除按钮。每当用户按下删除按钮时,应删除相应的元素并显示列表的其余部分。我编写了以下 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 删除相应的元素。

谢谢

4

2 回答 2

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
}
于 2013-07-16T16:34:49.930 回答
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
}
于 2013-07-16T16:33:15.670 回答