我有一个enquete。其中一页看起来像这样:
<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 :(得分: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>
答案 1 :(得分:0)
您可以将数据存储在会话中。
session_start();
$_SESSION['data'] = $_POST['data'];
然后在表单中你可以这样显示:
session_start();
<input type="text" name="data" value="<?php echo $_SESSION['data'];?>"/>
有关会话变量的更多信息:Session variables - PHP.net
而且,正如@Swaraj Giri所说。您应始终清理用户输入数据。这是关于StackOverflow的一个问题,它有一个很好地解释如何处理它的答案:What's the best method for sanitizing user input with PHP?
答案 2 :(得分: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
用于单选按钮!!