单个php表单内的多个按钮

时间:2019-01-13 11:46:58

标签: php

因此,我有一个循环,该循环显示了我数据库中的数据,每行将创建一个按钮,稍后将用于激活/停用用户。现在我的问题是单击按钮后,action.php的输出是这样的

  

action.php?course_action = 1&action = activate&course_action = 2&action = activate&course_action = 3&action = activate&course_action = 4&action = activate&course_action = 5&action = activate&course_action = 6&action = activate&course_action = 7&action = activate&course_action = 8&action = activate

按下按钮后,它似乎存储了输入中的所有值,预期的输出仅仅是这样

  

action.php?course_action = 1&action =激活

我完全忘记了如何使用php或只是一个借口。无论如何希望你们分享一些知识

<form action="db_connection/action.php" method="get">
 <?php 
   $learningcenters = json_decode(learningCenters());

   foreach ($learningcenters as $obj) {
      echo '<tr>
            <td>'.$obj->lc_id.'</td>
            <td class="txt-oflo">'.$obj->lc_name.'</td>
            <td>'.$obj->lc_emailadd.'</td>
            <td>'.$obj->lc_contactnum.'</td>
            <td class="txt-oflo">'.$obj->lc_datereg.'</td>
            <td><span class="text-success">'.$obj->lc_timereg.'</span></td>
            <td>
               <input type="hidden" name="course_action" value='.$obj->lc_id.'>
               <input type="hidden" name="action" value="activate"/>
               <input type="submit" class="act-user" value="Activate User"></input>
            </td>
            </tr>';
     }
   ?>
</form>

1 个答案:

答案 0 :(得分:0)

具有name属性的提交按钮在单击时将包含在表单数据中。要管理与value不同的字幕,请使用button元素。应该没有理由阻止发送其他表单数据。

要使PHP更适合作为嵌入式语言,您应该经常关闭<?php标签,而不是从字符串生成HTML输出。这也可以帮助您开发MVC或类似的模式。

要获取每发送一次按钮单击可获得的其他数据,请考虑一种组合字符串格式,例如:作为分隔符。

<?php
 var_dump($_GET);
?>

<form>
<?php
  foreach ([3,5,6] as $id)
  {
?>
  <button name="action" type="submit" value="activate:<?php echo $id;?>">Activate</button>
<?php
  }
?>
</form>

您甚至可以使用数组参数。这种方法还使您可以一次对复选框选中的多个项目执行操作。

<?php
  var_dump($_GET);

  if(isset($_GET['action']) && is_array($_GET['action']))
    foreach ($_GET['action'] as $id => $action)
      echo "<div>$id: $action</div>"
?>

<form>
<?php
  foreach ([3,5,6] as $id)
  {
    ?>
    <button name="action[<?php echo $id;?>]" type="submit" value="activate">Activate</button>
    <?php
  }
?>
</form>