【问题标题】:How to store checkbox 'checked' status in a session?如何在会话中存储复选框“已选中”状态?
【发布时间】:2018-06-25 09:44:42
【问题描述】:

我正在编写一个网站,其中有一个照片库。在每张照片下都有一个带有单个复选框的表单,因此我可以检查它,并且在会话期间它应该保持选中状态。

问题是我写的任何东西都不起作用,每次我选中复选框并点击提交时,它都会一直取消选中。这是我的表格:

<?= $i = 0; ?>
<?php if (count($photos)): ?>
    <?php foreach ($photos as $photo): ?>
        <?= $checkbox['_id'] = $photo['_id']; ?>
        <div class="gallery">
            <a target="_blank" href="view?id=<?= $photo['_id'] ?>">
                <img src="images/<?= $photo['title'] . "_min." . $photo['extension'] ?>" alt="Toster">
            </a>
            <div class="desc">Tytuł: <?= $photo['title'] ?> </div>
            <div class="desc">Autor: <?= $photo['author'] ?></div>
            <div class="desc"><a href="delete?id=<?= $photo['_id'] ?>">Delete</a></div>
            <div class="desc">
                <form action="remember_ses" method="post">
                    <input type="checkbox" name="checkbox[<?= $i ?>]" value="wybrane"><?= $photo['_id'] ?>
                    <input type="hidden" name="id" value="<?= $checkbox['_id']; ?>">
                    <input type="submit" value="Remember" id="submit">
                </form>
            </div>
        </div>
        <?= $i = $i + 1; ?>
    <?php endforeach ?>
<?php endif ?>

【问题讨论】:

  • 您的会话是started 吗?
  • 旁注:您不想这样做:name="checkbox[&lt;?=$i ?&gt;]" 应该只是 name="checkbox",因为您每次提交的表单只传递 1 个。
  • 另外,我没有看到上面的任何代码可以处理任何试图记住表单提交数据的事情。 _SESSION 和 _POST 都没有。 ??
  • 是的,会话已经开始,我需要这样命名复选框,因为稍后我需要包含在其他站点上检查过的图片。

标签: php forms checkbox


【解决方案1】:

首先您需要将照片ID添加到会话变量中,稍后每次执行循环时,如果您在输入中添加'checked',则检查照片的ID是否与会话ID匹配

【讨论】:

    猜你喜欢
    • 2012-12-09
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    相关资源
    最近更新 更多