提交POST表单后,PHP保持复选框选中状态

时间:2017-08-26 05:33:26

标签: php checkbox

如何在提交表单后检查复选框? 我尝试使用这种方法:

<input type = "checkbox" name="math[]" value="Addition" <?php if(isset($_POST['math'])) echo "checked='checked'";?>/>Addition<br>

但我的所有复选框都会保持检查,即使我只选择一个,这是我的代码:

<form id="calc" action="calculator.php" method="POST" >
<b>Enter First No:  <br>    
<input type = "text" name="num1" value="<?php if(isset($_POST['num1'])){echo $num1;} ?>" required="required"/><br>
Enter Second No: <br>
<input type = "text" name="num2" value="<?php if(isset($_POST['num2'])){echo $num2;} ?>" required="required"/><br>
<b>Select Operation: <br>
<input type = "checkbox" name="math[]" value="Addition" <?php if(isset($_POST['math'])) echo "checked='checked'";?>/>Addition<br>
<input type = "checkbox" name="math[]" value="Subtraction" <?php if(isset($_POST['math'])) echo "checked='checked'";?>/>Subtraction<br>
<input type ="submit" value="compute" name="btnsubmit"> <br>

谢谢!

2 个答案:

答案 0 :(得分:0)

改变:

<form id="calc" action="calculator.php" method="POST" >
<b>Enter First No:  <br>    
<input type = "text" name="num1" value="<?php if(isset($_POST['num1'])){echo $num1;} ?>" required="required"/><br>
Enter Second No: <br>
<input type = "text" name="num2" value="<?php if(isset($_POST['num2'])){echo $num2;} ?>" required="required"/><br>
<b>Select Operation: <br>
<input type = "checkbox" name="math[]" value="Addition" <?php if(isset($_POST['math'])) echo "checked='checked'";?>/>Addition<br>
<input type = "checkbox" name="math[]" value="Subtraction" <?php if(isset($_POST['math'])) echo "checked='checked'";?>/>Subtraction<br>
<input type ="submit" value="compute" name="btnsubmit"> <br>

致:

<form id="calc" action="" method="POST" >
<b>Enter First No:  <br>    
<input type = "text" name="num1" value="<?php if(isset($_POST['num1'])){echo $_POST['num1'];} ?>" required="required"/><br>
Enter Second No: <br>
<input type = "text" name="num2" value="<?php if(isset($_POST['num2'])){echo $_POST['num2'];} ?>" required="required"/><br>
<b>Select Operation: <br>
<input type = "checkbox" name="math[]" value="Addition" 
  <?php if(isset($_POST['math'][0]))
  { 
    if($_POST['math'][0]=="Addition"){ echo 'checked="checked"';}
  } ?> />Addition<br>
<input type = "checkbox" name="math[]" value="Subtraction"
  <?php if(isset($_POST['math'][0]) || isset($_POST['math'][1])) 
  {
    if($_POST['math'][0]=="Subtraction"){ echo 'checked="checked"';}
    if(isset($_POST['math'][1])){
      if($_POST['math'][1]=="Subtraction"){ 
        echo 'checked="checked"';
      }
    }
  } ?> />Subtraction<br>

<input type ="submit" value="compute" name="btnsubmit"> <br>

答案 1 :(得分:0)

我现在遇到了这个问题,想补充一下巴拉特·帕默(bharat parmer)的答案。而不是单独检查每个数组元素,我将以下内容用作我的PHP部分:

<?php if (!empty($_POST['math']) && in_array("Addition", $_POST['math']))
                echo 'checked="checked"';?>

这似乎更直接,尤其是当数组可能很大时。