我有一个使用简单联系表单的静态HTML页面。当用户单击发送按钮时,它使用.php页面发送数据。我已经测试了这个并且它运行正常,我遇到的问题是如何在用户发送消息后将用户保留在该html页面上。我根本不需要重定向(如果可能的话,我希望能够关闭联系表单所在的模式并返回到他们刚刚打开的页面 - 这个联系表单在多个页面上)
我拥有的内容:header('Location: index.html');
重定向正常,但我必须使用此功能为每个页面创建一个php联系脚本页面。
我尝试过的内容:header('Location: '.$_SERVER['REQUEST_URI']);
和header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
JavaScript:onclick="window.location.reload(true)"
什么也没做。
* *我已经通过使用AJAX以我想要的方式工作了。这对我来说都是全新的,所以我非常感谢你帮助我的所有人。即使经历了最终没有做到我想要的答案,也会给我一些新的东西 - 这在我的书中是件好事。感谢你的时间:)
如果你想看到它的实际效果 - 请在我的测试页面上查看:http://www.novasev.com/NST/about.html:它是底部面板上的“取消联系”按钮。
答案 0 :(得分:1)
这是一个完整的黑暗镜头。
这将永远无限地重定向到自身并导致浏览器出错。
header('Location: ' . $_SERVER['REQUEST_URI']);
试试这个
if(!isset($_GET['r']))
header('Location: ' . $_SERVER['REQUEST_URI'] . '?r=1');
这将重定向但使用参数,然后可以检查此r
参数以确保重定向不会一次又一次地发生。
答案 1 :(得分:1)
听起来你应该使用jQuery并使用Ajax提交你的联系表单。通过使用Ajax,您将在后台发送联系表单,用户将看不到页面刷新,即:模态窗口将保留,您可以使用javascript代码关闭它。
这是一个简单的例子,我希望能帮助你走上正轨。要从contact.php脚本中捕获潜在错误,请查看文档http://api.jquery.com/jQuery.ajax/
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#contact").submit(function() {
$.ajax({
type: "POST",
url: "contact.php",
data: $(this).serialize(),
success: function() {
alert("Thanks for contacting us!");
}
})
// Prevent that page reloads
return false;
})
})
</script>
<form id="contact">
<input type="text" name="name" />
<input type="text" name="msg" />
<input type="submit" />
</form>
答案 2 :(得分:-1)
如果可能的话,使用带有POST的AJAX调用将提交的数据发送到URL。你可以通过这种方式传递重定向。