我想重定向回表单并保留我以前输入的值,有什么想法吗?
问问题
2184 次
3 回答
2
你必须使用 seeions 来做到这一点,所以在你的 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');
现在在 your_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>
于 2012-09-22T15:06:05.187 回答
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['redirected'] 来获取此信息。您可以将此检查设为全局,就像我在此处或在每个输入字段上所做的那样。
<input name="key" value="<?php if (isset($_POST['redirected')) { echo $_POST['key']; } ?>" >
于 2012-09-22T15:19:56.373 回答
0
您在表单中使用哪种方法 GET 或
PHP 不能只是重定向回来,生成一个表单,输入带有名称和值的隐藏输入字段,然后:
document.nameOfForm.submit();
于 2012-09-22T14:57:18.113 回答