Php 将复选框设置为';选中';使GET变量不被发送

Php 将复选框设置为';选中';使GET变量不被发送,php,forms,checkbox,get,Php,Forms,Checkbox,Get,我试图使复选框像radiobutton一样工作,开/关值被传递到$info。 此代码工作正常,变量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.

我试图使复选框像radiobutton一样工作,开/关值被传递到$info。 此代码工作正常,变量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()"  />

** 
onchange=“this.form.submit()”/>

中断某些内容-不发送或读取GET变量,值始终处于关闭状态。为什么?这没有意义。将checked=“checked”添加到复选框会使此复选框的获取变量不会被发送。

如果未选中复选框,则不会提交该值。因此,当您取消选中该复选框时,将触发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>


如果未选中复选框,则不会提交该值。因此,当您取消选中该复选框时,将触发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>


您是否设置了
$info=$\u GET['info']?你试过了吗<代码>变量转储($\u GET)为什么
值取决于是否选中该框?不管怎样,该值都应该是相同的。我对您实际得到的结果有点茫然……但复选框只有在选中时才会提交一个值,因此动态设置其值几乎毫无意义,因为如果它以前被选中或未被选中,则设置为on。您是否设置了
$info=$\u GET['info'?你试过了吗<代码>变量转储($\u GET)为什么
值取决于是否选中该框?不管怎样,该值都应该是相同的。我对您实际得到的结果有点不知所措……但是复选框只有在选中时才会提交一个值,因此动态设置其值几乎毫无意义,因为如果它之前被选中或未被选中,则启用该复选框。