我有一个简单的表单,我帮助我学习php。我正在使用我的本地主机服务器来托管php文件(form.php)。但是,当我刷新页面时它重新提交表单,我知道我可以使用post / redirect / get方法来否定这个问题。除了实现标题('Location:form.php');没有工作,如果你可以看看代码 - 并告诉我我做错了什么,这将非常感激。
代码示例即没有标题('Location:form.php');
import random
l=[i for i in range(1,11)]
l.remove(5)
print random.choice(l)
这是结果......
没有标题位置的屏幕截图
然后我补充说:
<?php
if (empty($_POST) === false) {
echo '<pre>', print_r($_POST, true), '</pre>';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Form</title>
</head>
<body>
<form action="form.php" method="post">
<p>
<label for="name">Name:</label><br>
<input type="text" name="name" id="name"><br>
</p>
<p>
<label for="email">Email:</label><br>
<input type="text" name="email" id="email"><br>
</p>
<p>
<label for="message">Message:</label><br>
<textarea name="message" id="message"></textarea>
</p>
<p>
<input type="submit" value="submit">
</p>
</form>
我明白了......
答案 0 :(得分:0)
为防止表单在页面刷新时重新提交,使用了两种方法:
方法1:使用AJAX +重定向
使用AJAX提交表单,然后使用JQuery重定向到另一个页面。
方法2:重新加载页面
使用Javascript刷新页面。
您的代码应该是这样的:
<?php
if (!empty($_POST)) {
echo '<pre>', print_r($_POST, true), '</pre>';
echo '<script type="text/javascript"> location.reload();</script>';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Form</title>
</head>
<body>
<form action="form.php" method="post">
<p>
<label for="name">Name:</label><br>
<input type="text" name="name" id="name"><br>
</p>
<p>
<label for="email">Email:</label><br>
<input type="text" name="email" id="email"><br>
</p>
<p>
<label for="message">Message:</label><br>
<textarea name="message" id="message"></textarea>
</p>
<p>
<input type="submit" value="submit">
</p>
</form>
</body>
</html>