PHP,复选框

PHP,复选框,php,checkbox,Php,Checkbox,我有一个画廊,里面有图片,图片旁边是复选框。对于exmaple用户,单击checkboxex中的3,然后单击submit按钮,我希望在会话中保存这3幅图像,以便在其他库中显示它们(所选图像)。现在,我的代码如下所示: <?php if ($images->count()): ?> <?php foreach ($images as $image): ?> <tr> <td&g

我有一个画廊,里面有图片,图片旁边是复选框。对于exmaple用户,单击checkboxex中的3,然后单击submit按钮,我希望在会话中保存这3幅图像,以便在其他库中显示它们(所选图像)。现在,我的代码如下所示:

<?php if ($images->count()): ?>
        <?php foreach ($images as $image): ?>
             <tr>
                <td><?= $image['title'] ?></td>
                <td><?= $image['author'] ?></td>
                <td class="image">
                    <a href="static/images/<?= $image['file_name'] ?>">
                        <img class="gallery" src='static/images/<?= $image['file_name']?>'>
                    </a>
                </td>
                <td>
                <form action="gallery" method="post" class="wide"/>
                    <input type="hidden" name="id" value="<?= $image['_id'] ?>"/>
                    <input type="checkbox" name="ckeckbox"/>
                    <input type="submit" name="gallery" value="Zapamiętaj"/>
                </form>
                </td>
            </tr>
        <?php endforeach ?>
    <?php endif ?>
<?php
foreach($_POST["id"] as $id){
  $_SESSION["selectedphotos"][] = $id;
  }
?>


您必须将表单移到foreach循环之外。我还建议您重命名您的复选框输入(隐藏输入在这种情况下不可用,但如果您愿意,可以保留它):




您需要将submit按钮放在
foreach
语句之外。将return
复选框
唯一信息处理为
数组值
而不是
数组键
是否更自然?i、 e.在
复选框值中使用
唯一的\u id
而不是
名称是否更容易?@Ryan Vincent绝对正确。这是另一个解决办法。
<input type="hidden" name="id**[]**" value="<?= $image['_id'] ?>"/>
<?php
foreach($_POST["id"] as $id){
  $_SESSION["selectedphotos"][] = $id;
  }
?>
<?php if ($images->count()): ?>
    <form action="gallery" method="post" class="wide"/>
    <?php foreach ($images as $image): ?>
         <tr>
            <td><?= $image['title'] ?></td>
            <td><?= $image['author'] ?></td>
            <td class="image">
                <a href="static/images/<?= $image['file_name'] ?>">
                    <img class="gallery" src='static/images/<?= $image['file_name']?>'>
                </a>
            </td>
            <td>
                <input type="hidden" name="id" value="<?= $image['_id'] ?>"/>
                <input type="checkbox" name="ckeckbox"/>
                <input type="submit" name="gallery" value="Zapamiętaj"/>
            </td>
        </tr>
    <?php endforeach ?>
  </form>
<?php endif ?>