这是我的代码
<?php foreach ($categories as $cat) { ?>
<li>
<input id="category" name="category[]" type="checkbox" value="<?= $cat->term_id; ?>"
<?php if (isset($_GET['category'])) echo "checked='checked'"; ?>><?= $cat->name ?></input>
</li>
<?php } ?>
但是当我提交表格时,复选框都被检查了,我不想保持只检查复选框我检查了不是其他人 以下示例
答案 0 :(得分:1)
问题在于这条线,
<?php if (isset($_GET['category'])) echo "checked='checked'"; ?>> ...
^^^^^^^^^^^^^^^^^^^^^^^^^^
在表单提交时$_GET['category']
将被设置,因此这个条件isset($_GET['category'])
将适用于所有复选框。这就是检查所有复选框的原因,无论您之前检查过哪一个。所以你的foreach
循环应该是这样的:
<?php foreach ($categories as $cat) { ?>
<li>
<input id="category" name="category[]" type="checkbox" value="<?= $cat->term_id; ?>"
<?php if (isset($_GET['category']) && in_array($cat->term_id, $_GET['category'])) { echo "checked='checked'"; } ?>><?= $cat->name ?></input>
</li>
<?php } ?>
答案 1 :(得分:0)
请查看此代码,我认为它解决了您的问题。
.col-xs-4 {
background: gainsboro;
height: 100px;
text-align: center;
line-height: 100px;
border: 1px solid white;
}
.col-xs-4:hover {
background: lightgray;
}
.col-xs-12 {
background: lightgray;
height: 100px;
text-align: center;
line-height: 100px;
border: 1px solid white;
}