我了解如何让页面重定向:
<meta http-equiv="refresh" content="10; url=http://example.com/" />
我需要10-20秒的延迟(如上所示)才能让访问者看到他们的数据已成功收集。
我们有以下网站:
http://localhost
http://dev.example.com
http://beta.example.com
http://www.example.com
显然,我不希望在工作之后更改我的电脑上的代码,以便它在员工测试环境中工作,我们在测试时再次更改它,或者在它进入实时之前再次更改。< / p>
重定向,如上所述,将在有人在我们的网站上提交表单后使用。
我目前的任务是找出如何在PHP中执行此操作,以便我可以在页面提供之前编写标记。
但是,我也在其他客户的ASP.NET中开发页面,所以我想看看这样做的方法,也可以在Windows中处理。
答案 0 :(得分:3)
将您的重定向标记更改为指向网址/
,该网址始终是您所在域的根路径。
<meta http-equiv="refresh" content="10; url=/" />
答案 1 :(得分:1)
在PHP中:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
header('location: /'); //or header('location: '.$_SERVER['HTTP_HOST']);
}
使用jQuery setTimeout函数:
setTimeout(function(){ window.location = '/'; }, 10000); //10.000 milliseconds delay
Here您可以了解有关PHP SERVER超级全局的更多信息,并点击此链接到PHP header()函数。
如果你使用jQuery,你应该考虑这个解决方案:通过ajax请求PHP文件并进行数据库更新或一些服务器端的东西。如果成功,请在一段时间后显示消息并重定向。
示例:
<强> jQuery的:强>
$('#form').on('submit', function() {
var inputs = $(this).serialize(); //safe the submitted data
$.post('path_to_file.php', inputs, function(data) { //returned a json array
var data = $.parseJSON(data); //decode the json data
if('errors' in data) { //were there any errors?
$.each(data['errors'], function() {
$('#error-box').append(this); //show the error message
});
} else { //if no errors
$('#succes-box').html('Update was successful.');
setTimeout(function(){ window.location = '/'; }, 10000); //Redirect after 10s
}
});
});
<强> path_to_file.php 强>
<?php
//Do something with post data.....
$response = array();
if(!$query) {
$response['errors'][] = 'There was an error querying the database.'; //error example
}
echo json_encode($response);
希望这有帮助。