循环php中的多个提交按钮

时间:2013-07-16 16:27:54

标签: php loops button submit

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

谢谢

2 个答案:

答案 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
}