微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在表单提交后显示PHP POST结果,然后在单击“刷新”页面时重新加载相同的空白表单

经过6个多小时的搜索和其他论坛/博客,仍然没有找到任何操作方法,所有这些都在同一页面上;所以我仍然相信没有以完全相同的方式询问:输入表格中的一些数据,提交,显示结果……然后,如果用户点击“刷新”,则显示原始空白表格,而不显示有关“您的”浏览器消息正在重发数据等.“这是基本代码,它按预期运行,只需要在单击浏览器“刷新”后启动空白表单.我尝试了PRG和Sessions方法都没有成功.

<!DOCTYPE html >
<head>
<title>Refresher test</title>
</head>
<body>
<br/><br/><h2>What Me Refresh</h2>

<?PHP
//If form not submitted, display form.
if (!isset($_POST['submit'])||(($_POST['text']) == "")){
?>  

<p><h3>Enter text in the Box then select "Go":</h3></p>

<form method="post" action="RfrshTst.PHP" >
<textarea rows="5" cols="50" name="text" >
</textarea>
<input type="submit" name="submit" value="Go" />
</form>

<?PHP 
//If form submitted, process input.
} else {
//Retrieve show string from form submission.
$txt = $_POST['text'];
echo "The text you entered was : $txt";

} ?> 
</body>
</html>

解决方法:

解决方案使用会话.
首先在会话中存储post字段(如果存在),然后重定向到同一页面.
如果它在会话中找到该字段,则会获取该字段并将其从会话中删除并在页面显示.

<?PHP

$txt = "";
session_start();

if (isset($_POST['submit']) && (($_POST['text']) != "")) {
    $_SESSION['text'] = $_POST['text'];
    header("Location: ". $_SERVER['REQUEST_URI']);
    exit;
} else {
    if(isset($_SESSION['text'])) {
        //Retrieve show string from form submission.
        $txt = $_SESSION['text'];
        unset($_SESSION['text']);
    }
}

?>

<!DOCTYPE html >
<head>
<title>Refresher test</title>
</head>
<body>
<br/><br/><h2>What Me Refresh</h2>

<?PHP
if($txt != "") {
    echo "The text you entered was : $txt";
} else {
?>


<p><h3>Enter text in the Box then select "Go":</h3></p>

<form method="post">
<textarea rows="5" cols="50" name="text" >
</textarea>
<input type="submit" name="submit" value="Go" />
</form>

<?PHP } ?>

</body>
</html>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐