【问题标题】:Catching data from multiple checkboxes in a POST request从 POST 请求中的多个复选框中捕获数据
【发布时间】:2014-03-22 01:57:27
【问题描述】:

非常感谢您检查这个问题。我的网站上有一个用户之间的简单电子邮件系统。下面是一段代码,它是一个 foreach 循环,用于提取用户收件箱中的每封电子邮件并显示主题和作者等。我有一个删除复选框来处理每个邮件。我正在努力了解如何在 POST 请求中捕获已选择删除的电子邮件。我在想它可能涉及一个数组,但不确定。所有选中的框都具有相同的“删除”值,因此应该很容易,但我找不到解决方案

 <!-- LOOPING THROUGH ALL THE RESPONSES TO THE GIVEN THREAD -->

    <?php foreach($messages as $message):?>
     < div class="message_strip">
       <table>      
       <tr>
        <td>
        <?php $id = $message->sender_id;?>        
        <img style="width:30px; margin:2px;" 
         src="../<?php echo grab_thread_thumbnail($message->sender_id); ?>"/>       
        </td>
       <td>                  
       <div>       
         <?php echo $message->style_email($message->message_id);?>        
        <div class="sender">
        <?php $user=User::find_by_id($message->sender_id);
        echo htmlentities($user->first_name);?>&nbspwrote on 
        <?php echo datetime_to_text($message->time); ?>
        </div>
       </td>
       <form action="message_folder.php" method="post">
       <td class="delete_checkbox">
       <input type="checkbox" class="cb-element" name="delete" value="delete">
       </td>
       </form>
       </tr>            
       </table>
       </div>
       </a>       
       <?php endforeach; ?>

【问题讨论】:

    标签: php post checkbox


    【解决方案1】:

    不要将复选框输入包装在表单标签中。将整个foreach 包裹在表单标签中,您将需要一个提交按钮。

    假设你想要message_id:

    <input type="checkbox" class="cb-element" name="delete[]" value="<?=$message->message_id ?>">
    

    然后,您将拥有一个 message_ids 数组,这些数组已在 $_POST['delete'] 中签入。

    【讨论】:

      【解决方案2】:

      您需要为每个复选框指定一个唯一的名称,例如name='delete[$message->sender_id]',然后遍历 POST'ed 数组。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-25
        • 1970-01-01
        • 1970-01-01
        • 2019-12-27
        • 2019-11-26
        • 2018-03-14
        • 2017-08-27
        • 1970-01-01
        相关资源
        最近更新 更多