PHP - 表单:保存表单提交中的条目/选择

时间:2011-11-03 18:44:17

标签: php forms form-submit

我有一个PHP表单,其中包含一些下拉选项和文本字段条目。如果用户从下拉列表中选择了错误的项目,那么当他们提交表单时,我会让它向用户显示错误消息并强制浏览器返回上一页。问题是用户必须重新输入所有信息。

如何在表单提交成功之前使表单保存数据?

编辑:

表单提交方法为$_POST,表单正在提交给另一页。

这必须使用严格的PHP来完成,因为Javascript / Jquery解决方案可以被更安全的用户阻止。

4 个答案:

答案 0 :(得分:1)

表单是POST还是GET?无论哪种方式,您都可以访问PHP变量$ _POST或$ _GET中的所有提交字段。在HTML中,您可以将这些值(如果已设置)传递给每个HTML输入元素的默认值。这样,如果是第一次,它们将为空白,如果出现错误,则值将重新填充。

答案 1 :(得分:1)

如果他们是选择值,你可以这样做:

<select name="my_select" id="my_select">
    <option value="123"<?php if($_REQUEST['my_select'] == 123) echo ' selected="selected"; ?>>123</option>
</select>

如果您有常规文字输入,则只需将$_REQUEST变量应用于value属性:

<input type="text" name="my_text" value="<?php echo $_REQUEST['my_text'] ?>" />

答案 2 :(得分:1)

我建议阻止页面从提交中导航,直到数据得到验证。输入jQuery:)

<script type="text/javascript" src="jquery-library.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        // Wait for the user to click on your button
        $('#submit_button').click(function(){
            // Check each form field for an appropriate value
            if ($('#form_field1').val() != 'something I expect')
            {
                alert('Wrong submission!');
                return false;
            }
            // Forward the user to some url location
            window.location = 'url';
            return false;
        });
    });
</script>

答案 3 :(得分:1)

你走了。这将有效,并且不依赖于Javascript:

form.php //表单页面

<?php session_start(); ?>
<form method="post" action="action.php">
    <input type="text" id="input1" value="<?php echo (isset($_SESSION['fields']) ? $_SESSION['fields']['input1'] : '') ?>" />
    <input type="text" id="input2" value="<?php echo (isset($_SESSION['fields']) ? $_SESSION['fields']['input2'] : '') ?>" />   
</form>

action.php //操作页面

<?php
    session_start();

    //do your validation here. If validation fails:

    $_SESSION['fields']['input1'] = $_POST['input1'];
    $_SESSION['fields']['input2'] = $_POST['input2'];

    //redirect back to form.php
?>