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