我正在尝试使复选框像radiobutton一样工作,开/关值传递给$ info。 此代码工作正常,可变信息通过GET
发送和读取<?php if (empty($info)) { $info='on'; } ?>
<input type="checkbox" name="info" value="<?php if ($info=='on'){ echo "off"; } else { echo "on"; } ?>" onchange="this.form.submit()" />
添加:
**<?php if (!empty($info)){ echo 'checked="checked"'; } ?>**
<input type="checkbox" name="info" value="<?php if ($info=='on'){ echo "off"; } else { echo "on"; } ?>" <?php if (!empty($info)){ echo 'checked="checked"'; } ?> onchange="this.form.submit()" />
中断某些内容 - 不发送或读取GET变量,值始终为OFF。为什么?这没有意义。将 checked =“checked”添加到复选框后,不会发送此复选框的GET变量。
答案 0 :(得分:1)
如果未选中复选框,则不会提交该值。因此,当您取消选中它时,onchange将触发但未提交任何内容,因为未选中此框。这是一个解决方案:
<?php
$sub = $_POST['submitted'];
$info = $_POST['info'];
if ($sub) {
if ($info == 'on') {
echo 'turning it on!';
} else {
echo 'turning it OFF!';
}
}
?>
<form method="post">
<input type="checkbox" name="info" value="on" onchange="this.form.submit()" <?php echo $info == 'on' ? 'checked="checked" ' : ''; ?> />
<input type="hidden" name="submitted" value="1" />
</form>