邮寄检查后保留选定的值

时间:2015-06-25 08:10:52

标签: javascript php html forms

我有一个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留空。我收到一条消息:请填写所有问题。

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

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

3 个答案:

答案 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
用于单选按钮!!