php执行成功后返回前一页并刷新页面

本文介绍了一种在PHP中实现用户退出登录后自动返回前一页面并刷新的方法。通过使用location.href结合$_SERVER['HTTP_REFERER']的方式,解决了直接使用history.back()导致页面缓存信息未更新的问题。

这个问题是群里有人问的。

他有一个退出的页面logout.php,希望用户在点击退出按钮后退出登录状态,并返回之前的页面。

他写的代码如下:

<?php
echo "<script>alert('退出成功!');history.back();</script>";
?> 

回到前一页的功能是达到了,但是他又遇到另一个问题,返回了之前的页面还存在用户的信息,必须要手动进行刷新才能到看删除cookies后的效果,他觉得这样很不方便。

所以他问:要如何才能返回之前的页面并让页面自动刷新?

其实小编觉得应该很简单,就一句代码就能实现,如下:

echo "<script>alert('退出成功!');location.href='".$_SERVER["HTTP_REFERER"]."';</script>"; 

亲测没问题!

原文转自http://www.santii.com/article/152.html

在 ThinkPHP 框架中,执行某个语句后刷新页面通常可以通过多种方式实现。根据实际需求和场景,可以选择以下几种方法: ### 使用 JavaScript 实现页面刷新 端通过 JavaScript 的 `location.reload()` 方法可以实现页面的重新加载。这种方式适用于需要在数据库操作完成后立即刷新页面以更新数据展示的场景。 ```javascript $.post('/index.php/Home/Index/updateData', {id: 1}, function(response) { if (response.status === 'success') { location.reload(); } }); ``` 此代码片段展示了如何使用 jQuery 发起 POST 请求,当请求成功返回状态为 "success" 时,调用 `location.reload()` 刷新整个页面[^1]。 ### 使用 ThinkPHP 控制器跳转功能 如果希望在服务器端完成某些操作后跳转到当页面,可以通过 `redirect()` 方法结合 `session` 或 `cookie` 存储当页面路径,从而实现刷新效果。 ```php public function updateData() { // 执行数据库更新操作 $result = Db::table('think_user')->where('id', '=', 1)->update(['name' => 'new_name']); if ($result !== false) { session('prevurl', $_SERVER['HTTP_REFERER']); // 存储上一页面地址 redirect(session('prevurl')); // 跳转至上一页面 } } ``` 上述代码中,首先执行了数据库更新操作,如果更新成功,则将用户重定向到之页面,从而实现刷新效果[^1]。 ### 结合 AJAX 局部刷新页面内容 若仅需刷新页面的部分内容而非整个页面,可以采用 AJAX 方式进行局部刷新端发起请求,后端返回 HTML 片段或 JSON 数据,端再根据返回的数据动态更新页面内容。 ```javascript $(document).ready(function() { $('#refreshButton').on('click', function() { $.post('/index.php/Home/Index/getUpdatedContent', {}, function(response) { $('#contentArea').html(response); }); }); }); ``` 此示例中,点击按钮会向 `/index.php/Home/Index/getUpdatedContent` 发送 POST 请求,返回的内容插入到 ID 为 `contentArea` 的区域中,从而实现局部刷新[^1]。 ### 在控制器中返回 HTML 内容 ThinkPHP 控制器中可以通过模板渲染生成 HTML 片段,然后通过 `ajaxReturn` 或直接输出的方式返回端: ```php public function getUpdatedContent() { $data = M('Content')->select(); $this->assign('list', $data); $html = $this->fetch('partial_content'); $this->ajaxReturn($html); } ``` 该方法从数据库获取数据分配到模板变量中,接着调用 `fetch()` 方法渲染指定的模板文件(如 `partial_content.html`),最后通过 `ajaxReturn()` 将生成的 HTML 返回端。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值