gpt4 book ai didi

javascript - 在 javascript 中一段时间​​后从 URL 中删除查询字符串

转载 作者:行者123 更新时间:2023-11-30 20:15:39 26 4
gpt4 key购买 nike

大家好我想在 php 中一段时间​​后从我的 url 中删除查询字符串我有 2 个页面,一个是用户提交后该页面中的 login-issue.php,它将重定向到 login.php 页面查询字符串如下所示

    if ($mail->Send()) {

Header( 'Location: login.php?message=success' );
}

在 login.php 中,消息将与该查询字符串一起出现

    if(isset($_GET['message']))
{
$successMessage= "Your Request has been sent to Admin.you will get mail with in 24hrs";
}

我想在一段时间(1 分钟)后删除带有成功消息的查询。

任何人都可以帮助我,我该怎么做。

提前致谢。

最佳答案

PHP本身无法处理客户端操作,因此我们需要使用 JavaScript完成任务。

setTimeout(function() {
history.pushState('', '',
location.href.split('?')[0]);
}, 60000); // 1 min = 1000 ms * 60 = 60000

解释:我们说到JavaScript我要执行 history.pushState('', '',
location.href.split('?')[0]);
使用 setTimeout 1 分钟后方法,此方法属于window对象(如果您使用的是浏览器)和 window是包含所有内容的对象,所以写 window.setTimeout(...)是可选的 JavaScript知道我们在引用 window即使我们没有写它。所以我们拆分当前的URL通过 ?字符我们得到一个数组作为返回值,我们替换当前的 URL通过该表中的第一列。

然后 query string将从 URL 中删除无需刷新页面。

编辑:

p 中显示消息我们将在 1 分钟后删除标签,同时更改 URL ,改变这个:

if(isset($_GET['message'])) { 
$successMessage= "Your Request has been sent to Admin.you will get mail with in 24hrs";
}

进入这个:

if(isset($_GET['message'])) { 
$successMessage= '<p id="message">Your Request has been sent to Admin.you will get mail with in 24hrs</p>';
}

然后把上面的改成JavaScript我用这个给你的:

setTimeout(function() {
history.pushState('', '',
location.href.split('?')[0]);
var msg = document.getElementById('message');
msg.parentNode.removeChild(p);
}, 60000); // 1 min = 1000 ms * 60 = 60000

现在您必须将该脚本放在</body>之前的脚本标签中

所以另一个编辑来满足您的需求:

只需将此脚本放入 script标记而不更改 PHP 中的任何其他内容代码:

setTimeout(function() {
window.location.href = window.location.href.split('?')[0];
}, 60000);

这样,页面将在 1 分钟后自动刷新,因此没有 GET['message']将包含在内,因此页面中不会显示任何消息。

希望我能把你推得更远。如果您需要任何进一步的解释,我在这里。

关于javascript - 在 javascript 中一段时间​​后从 URL 中删除查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51942587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com