【问题标题】:multiple submit buttons in a loop php循环php中的多个提交按钮
【发布时间】:2013-07-16 16:27:53
【问题描述】:

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

谢谢

【问题讨论】:

  • 生成的 HTML 是什么样的?确定要删除哪个值的代码是什么样的?
  • 添加一个 可能是一个解决方案:?
  • if($_POST['$p'].. 是你的问题。这不可能是正确的。
  • 嘿 $j 是什么?您正在使用 $i 作为循环元素。那么 $j 是为了什么?

标签: php loops button submit


【解决方案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
}

【讨论】:

    【解决方案2】:

    您正在以自己的形式放置每个删除按钮 - 您还可以添加带有要删除的 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
    }
    

    【讨论】:

      猜你喜欢
      • 2018-03-19
      • 1970-01-01
      • 2017-09-03
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多