Php 将复选框设置为';选中';使GET变量不被发送
我试图使复选框像radiobutton一样工作,开/关值被传递到$info。 此代码工作正常,变量info通过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.
<?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)代码>为什么值取决于是否选中该框?不管怎样,该值都应该是相同的。我对您实际得到的结果有点不知所措……但是复选框只有在选中时才会提交一个值,因此动态设置其值几乎毫无意义,因为如果它之前被选中或未被选中,则启用该复选框。