我有3个用于搜索的复选框
<input type="checkbox" onChange="this.form.submit()" ',$var1 ? ' class="checkon" checked="checked"' : '','name="c1" value="c1">
<input type="checkbox" onChange="this.form.submit()" ',$var2 ? ' class="checkon" checked="checked"' : '',' name="c2" value="c2">';
<input type="checkbox" onChange="this.form.submit()" ',$var3 ? ' class="checkon" checked="checked"' : '',' name="c3" value="c3">';
我希望它们默认都处于打开状态,但是如果我将它们设置为on:
$_POST['c1'] = 'on';
然后,当我取消选中该框时,它仍然亮着?如何在默认情况下启用它,但在取消选中时关闭?
答案 0 :(得分:2)
我不确定为什么你有这些输入的onChange事件。您应该让用户检查并取消选中他们想要的任何方框,然后将所有数据一起提交。然后执行if(isset($ _ POST ['c1'])){// Box已选中}。还检查=“已选中”作为HTML属性(所以<input type="checkbox" name="c1" value="on" checked="checked" />
),而不是在onChange事件中执行简写if语句。
这就是我的方式:
<form action="" method="post">
<fieldset>
<input type="checkbox" name="c1" value="on" <?php if (isChecked('c1')) echo 'checked="checked"'; ?> />
<input type="checkbox" name="c2" value="on" <?php if (isChecked('c2')) echo 'checked="checked"'; ?> />
<input type="checkbox" name="c3" value="on" <?php if (isChecked('c3')) echo 'checked="checked"'; ?> />
<input type="submit" name="submit" value="Go" />
</fieldset>
</form>
<?php
function isChecked($name) { //Darkbee's edit
return empty($_POST) || isset($_POST[$name]);
}
if(isset($_POST['submit'])){
if(isset($_POST['c1'])){
//Checkbox1 was checked when the form was submitted, code goes here
}
//Do the same for c2 & c3 as necessary
}
?>
希望这会有所帮助!!