我想重定向回形式并保留我之前输入的值,任何想法?
答案 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();