默认情况下为PHP搜索设置$ _POST复选框

时间:2014-08-11 09:35:11

标签: php html search post checkbox

我有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';

然后,当我取消选中该框时,它仍然亮着?如何在默认情况下启用它,但在取消选中时关闭?

1 个答案:

答案 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
   }
?>

希望这会有所帮助!!