2015-06-25 56 views
0

我有一个enquete。其中1页看起来像这样:后检查后保留选定的值

<form method="POST"> 
<input type="hidden" value="true" id="x" name="x"> 
    <table> 
     <b>How relevant where the topics for your current and/or future business?</b> 
     <hr /> 
     <tr>  
      <input type="hidden" value="1" name="question1"> 
      <td><input type="radio" name="answer1" value="1">1</td> 
      <td><input type="radio" name="answer1" value="2">2</td> 
      <td><input type="radio" name="answer1" value="3">3</td> 
      <td><input type="radio" name="answer1" value="4">4</td> 
      <td><input type="radio" name="answer1" value="5">5</td> 
      <td><input type="radio" name="answer1" value="6">6</td> 
      <td><input type="radio" name="answer1" value="7">7</td> 
      <td><input type="radio" name="answer1" value="8">8</td> 
      <td><input type="radio" name="answer1" value="9">9</td> 
      <td><input type="radio" name="answer1" value="10">10</td> 
      <td> 
       <textarea rows="4" cols="50" name="comment1"></textarea> 
      </td> 
     </tr> 
    </table> 
     <br /><br /> 
    <table> 
     <b>How did you value the networking opportunity?</b> 
     <hr /> 
     <tr> 
      <input type="hidden" value="2" name="question2"> 
      <td><input type="radio" name="answer2" value="1">1</td> 
      <td><input type="radio" name="answer2" value="2">2</td> 
      <td><input type="radio" name="answer2" value="3">3</td> 
      <td><input type="radio" name="answer2" value="4">4</td> 
      <td><input type="radio" name="answer2" value="5">5</td> 
      <td><input type="radio" name="answer2" value="6">6</td> 
      <td><input type="radio" name="answer2" value="7">7</td> 
      <td><input type="radio" name="answer2" value="8">8</td> 
      <td><input type="radio" name="answer2" value="9">9</td> 
      <td><input type="radio" name="answer2" value="10">10</td> 
      <td> 
       <textarea rows="4" cols="50" name="comment2"></textarea> 
      </td> 
     </tr> 
    </table> 
    <input id="enquete_next" type="submit" name="Add" value="Next"> 
<?php 
//If the form gets submitted, check if everything is okay. 
if(isset($_POST['x'])){ 
$validcomment = false; 
     //validate if the answers are not empty. if they are empty go the the else statement. 
     if(!empty($_POST['answer1'])){ 
      if(!empty($_POST['answer2'])){ 
       $validcomment = true; 
      }else{ 
       echo "Please fill in all the questions!" . "<br>"; 
      } 
     }else{ 
       echo "Please fill in all the questions!" . "<br>"; 
     } 
     //If the form is filled in, and checked. Then do this! 
     if($validcomment){ 
      insert_page1(); 
     } 
} 
?> 
</form> 

以下代码正在工作。所以当我填写答案1时,请将答案2留空。我收到一条消息:请填写所有问题。

但是,我希望表单保持其值。所以我只需填写空的答案,而不是整个表格。

因为现在,当它检查。表格变空了,我必须重新填写。

+0

在谷歌搜索Core核心表单验证PHP –

+0

在提交之前先验证表单 –

+0

保存在sessionStorage或php会话中 – mplungjan

回答

1

试试下面的代码

<form method="POST"> 
<input type="hidden" name="hiden_field" value="<?php $_POST['hiden_field'] ?>" id="x" name="x"> 
    <table> 
     <b>How relevant where the topics for your current and/or future business?</b> 
     <hr /> 
     <tr>  
      <input type="hidden" value="1" name="question1"> 
      <td><input type="radio" name="answer1" value="1" <?php if($_POST['answer1']==1){ echo "checked"; } ?>>1</td> 
      <td><input type="radio" name="answer1" value="2" <?php if($_POST['answer1']==2){ echo "checked"; } ?>>2</td> 
      <td><input type="radio" name="answer1" value="3" <?php if($_POST['answer1']==3){ echo "checked"; } ?>>3</td> 
      <td><input type="radio" name="answer1" value="4" <?php if($_POST['answer1']==4){ echo "checked"; } ?>>4</td> 
      <td><input type="radio" name="answer1" value="5" <?php if($_POST['answer1']==5){ echo "checked"; } ?>>5</td> 
      <td><input type="radio" name="answer1" value="6" <?php if($_POST['answer1']==6){ echo "checked"; } ?>>6</td> 
      <td><input type="radio" name="answer1" value="7" <?php if($_POST['answer1']==7){ echo "checked"; } ?>>7</td> 
      <td><input type="radio" name="answer1" value="8" <?php if($_POST['answer1']==8){ echo "checked"; } ?>>8</td> 
      <td><input type="radio" name="answer1" value="9" <?php if($_POST['answer1']==9){ echo "checked"; } ?>>9</td> 
      <td><input type="radio" name="answer1" value="10" <?php if($_POST['answer1']==10){ echo "checked"; } ?>>10</td> 
      <td> 
       <textarea rows="4" cols="50" name="comment1"><?php if($_POST['comment1']){ echo $_POST['comment1']; } ?></textarea> 
      </td> 
     </tr> 
    </table> 
     <br /><br /> 
    <table> 
     <b>How did you value the networking opportunity?</b> 
     <hr /> 
     <tr> 
      <input type="hidden" value="2" name="question2"> 
      <td><input type="radio" name="answer2" value="1" <?php if($_POST['answer2']==1){ echo "checked"; } ?>>1</td> 
      <td><input type="radio" name="answer2" value="2" <?php if($_POST['answer2']==2){ echo "checked"; } ?>>2</td> 
      <td><input type="radio" name="answer2" value="3" <?php if($_POST['answer2']==3){ echo "checked"; } ?>>3</td> 
      <td><input type="radio" name="answer2" value="4" <?php if($_POST['answer2']==4){ echo "checked"; } ?>>4</td> 
      <td><input type="radio" name="answer2" value="5" <?php if($_POST['answer2']==5){ echo "checked"; } ?>>5</td> 
      <td><input type="radio" name="answer2" value="6" <?php if($_POST['answer2']==6){ echo "checked"; } ?>>6</td> 
      <td><input type="radio" name="answer2" value="7" <?php if($_POST['answer2']==7){ echo "checked"; } ?>>7</td> 
      <td><input type="radio" name="answer2" value="8" <?php if($_POST['answer2']==8){ echo "checked"; } ?>>8</td> 
      <td><input type="radio" name="answer2" value="9" <?php if($_POST['answer2']==9){ echo "checked"; } ?>>9</td> 
      <td><input type="radio" name="answer2" value="10" <?php if($_POST['answer2']==10){ echo "checked"; } ?>>10</td> 
      <td> 
       <textarea rows="4" cols="50" name="comment2"><?php if($_POST['comment2']){ echo $_POST['comment2']; } ?></textarea> 
      </td> 
     </tr> 
    </table> 
    <input id="enquete_next" type="submit" name="Add" value="Next"> 
<?php 
//If the form gets submitted, check if everything is okay. 
if(isset($_POST['x'])){ 
$validcomment = false; 
     //validate if the answers are not empty. if they are empty go the the else statement. 
     if(!empty($_POST['answer1'])){ 
      if(!empty($_POST['answer2'])){ 
       $validcomment = true; 
      }else{ 
       echo "Please fill in all the questions!" . "<br>"; 
      } 
     }else{ 
       echo "Please fill in all the questions!" . "<br>"; 
     } 
     //If the form is filled in, and checked. Then do this! 
     if($validcomment){ 
      insert_page1(); 
     } 
} 
?> 
</form> 
0

您可以将数据存储在会话中。

session_start(); 
$_SESSION['data'] = $_POST['data']; 

然后在表格可以显示它是这样的:

session_start(); 
<input type="text" name="data" value="<?php echo $_SESSION['data'];?>"/> 

更多关于会话变量:Session variables - PHP.net

还有如@Swaraj吉里提到的。您应该总是消毒用户输入数据。下面是对如何处理一个很好的解释答案在计算器上的一个问题是:What's the best method for sanitizing user input with PHP?

+0

请添加关于清理用户输入的注释。 –

+0

谢谢你的输入@SwarajGiri –

0
<form method="POST"> 
<input type="hidden" value="true" id="x" name="x"> 
    <b>How relevant where the topics for your current and/or future business?</b> 
     <hr /> 
    <table> 

     <tr>  
      <td><input type="hidden" value="1" name="question1"></td> 
      <td><input type="radio" name="answer1" value="1">1</td> 
      <td><input type="radio" name="answer1" value="2">2</td> 
      <td><input type="radio" name="answer1" value="3">3</td> 
      <td><input type="radio" name="answer1" value="4">4</td> 
      <td><input type="radio" name="answer1" value="5">5</td> 
      <td><input type="radio" name="answer1" value="6">6</td> 
      <td><input type="radio" name="answer1" value="7">7</td> 
      <td><input type="radio" name="answer1" value="8">8</td> 
      <td><input type="radio" name="answer1" value="9">9</td> 
      <td><input type="radio" name="answer1" value="10">10</td> 
      <td> 
       <textarea rows="4" cols="50" name="comment1"><?php echo $_POST['comment1'];?></textarea> 
      </td> 
     </tr> 
    </table> 
     <br /><br /> 
     <b>How did you value the networking opportunity?</b> 
     <hr /> 
    <table> 

     <tr> 
      <td><input type="hidden" value="2" name="question2"></td> 
      <td><input type="radio" name="answer2" value="1">1</td> 
      <td><input type="radio" name="answer2" value="2">2</td> 
      <td><input type="radio" name="answer2" value="3">3</td> 
      <td><input type="radio" name="answer2" value="4">4</td> 
      <td><input type="radio" name="answer2" value="5">5</td> 
      <td><input type="radio" name="answer2" value="6">6</td> 
      <td><input type="radio" name="answer2" value="7">7</td> 
      <td><input type="radio" name="answer2" value="8">8</td> 
      <td><input type="radio" name="answer2" value="9">9</td> 
      <td><input type="radio" name="answer2" value="10">10</td> 
      <td> 
       <textarea rows="4" cols="50" name="comment2"><?php echo $_POST['comment2'];?></textarea> 
      </td> 
     </tr> 
    </table> 
    <input id="enquete_next" type="submit" name="Add" value="Next"> 
<?php 
//If the form gets submitted, check if everything is okay. 
if(isset($_POST['x'])){ 
$validcomment = false; 
     //validate if the answers are not empty. if they are empty go the the else statement. 
     if(!empty($_POST['answer1'])){ 
      if(!empty($_POST['answer2'])){ 
       $validcomment = true; 
      }else{ 
       echo "Please fill in all the questions!" . "<br>"; 
      } 
     }else{ 
       echo "Please fill in all the questions!" . "<br>"; 
     } 
     //If the form is filled in, and checked. Then do this! 
     if($validcomment){ 
      insert_page1(); 
     } 
} 
?> 
</form> 

我可以解决文本区域,但不是单选按钮!
Keep radio button selected after a form submit
对于单选按钮!