从POST请求中的多个复选框中捕获数据

时间:2014-03-21 17:51:22

标签: php post checkbox

非常感谢您查看此问题。用户在我的网站上有一个简单的电子邮件系统。下面是一段代码,它是一个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; ?>

2 个答案:

答案 0 :(得分:0)

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

假设你想要message_id

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

然后,您将在message_ids中检查$_POST['delete']数组。

答案 1 :(得分:0)

您需要为每个复选框指定一个唯一的名称,例如name ='delete [$ message-&gt; sender_id]',然后迭代POST的数组。