代码之家  ›  专栏  ›  技术社区  ›  nyx97

单个php表单中的多个按钮

php
  •  1
  • nyx97  · 技术社区  · 7 年前

    看起来按下按钮后,它存储了输入的所有值,预期的输出只是这样

    action.php?课程动作=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 回复  |  直到 7 年前
        1
  •  0
  •   Pinke Helga    7 年前

    带有 name 属性在单击时包含在表单数据中。管理不同于 value ,使用 button 元素。应该没有理由阻止发送其他表单数据。

    <?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>
    
    推荐文章