重定向并保留以前输入的值

时间:2012-09-22 14:53:00

标签: php

我想重定向回形式并保留我之前输入的值,任何想法?

3 个答案:

答案 0 :(得分:2)

你必须使用会话来做到这一点,所以在你的process.php文件中:

    session_start();
    //assign all posted values to a session
    if (!empty($_POST)) {
        foreach($_POST as $key => $value) {
            $_SESSION['your_form'][$key] = $value;
        }
    }
    header('Location: your_form.php');

现在在你的form.php中:

    <?php
    session_start();
    if (isset($_SESSION['your_form']) && !empty($_SESSION['your_form'])) {
        $form_data = $_SESSION['your_form'];
        unset($_SESSION['your_form']);
    }
    ?>
    <form method="POST" action="process.php">
        <input type="text" name="txt1" value="<?=$form_data['your_form']['txt1']?>" />
        <input type="text" name="txt2" value="<?=$form_data['your_form']['txt2']?>" />
        <input type="submit" name="Submit Form" />
    </form>

答案 1 :(得分:1)

<form method='POST' action='back_to_your_form.php' name='thisForm'>

<?php foreach ($_POST as $key => $value) { ?>

  <input name='<?php echo $key; ?>' value='<?php echo $value; ?>' type='hidden'>

<?php } ?>

  <input name='redirected' type='hidden'>
</form>

<script language='javascript'>
  document.thisForm.submit();
</script>

在Manolis的回答中,您将所需的数据存储在会话中,工作正常,但在将数据插入表单后取消设置。 在这里,您可以生成一个新表单,填充输入隐藏的输入字段,然后通过POST方法提交到您的页面。 在您的页面上,试试这个:

<?php
if (isset($_POST['redirected'])) {
?>
  <input name="key1" value="<?php echo $_POST['key1']; ?>" >
  <input name="key2" value="<?php echo $_POST['key2']; ?>" >
  <button>Submit</button>
<?php
}
?>

在这里,您将值填回表单中,如果您回到此页面,您可以通过检查$ _POST ['重定向']是否已设置来获取此信息。 您可以将此检查设为全局检查,就像我在此处或在每个输入字段上一样。

<input name="key" value="<?php if (isset($_POST['redirected')) { echo $_POST['key']; } ?>" >

答案 2 :(得分:0)

您在表格GET或

中使用哪种方法

PHP无法重定向,生成表单,输入带有名称和值的隐藏输入字段,而不是:

document.nameOfForm.submit();