1

我正在尝试使复选框像单选按钮一样工作,并将开/关值传递给 $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 变量不被发送。

4

1 回答 1

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>
于 2012-08-27T15:05:51.853 回答