PHP中if else语句的执行结果能否不刷新页面展示?如何实现?
需求可实现性说明
该需求完全可以实现。你之前没有成功的核心原因是:PHP是服务端语言,页面首次加载完成后PHP代码就已经执行完毕,不会自动在浏览器端重复运行,必须搭配前端定时请求逻辑实现无刷新更新。
具体实现代码
1. 拆分服务端时间判断接口
把你原来的PHP逻辑单独存为check_time.php,修正原有代码的时区配置、时间比较逻辑问题:
<?php // 配置对应时区,避免服务器时间和本地时间偏差 date_default_timezone_set('Asia/Shanghai'); $timenow = time(); // 预设上午7:30,原有代码写了pm会变成下午19:30,已修正 $settime = strtotime('today 7:30:00'); if ($settime <= $timenow) { echo "School Time"; } else { echo "Not late for school"; } ?>
2. 前端页面加AJAX轮询逻辑
新建index.html作为访问入口,实现定时请求接口更新页面内容:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>到校状态判断</title> </head> <body> <h3>当前状态:<span id="time_result"></span></h3> <script> function getTimeResult() { // 发起AJAX请求拿判断结果 const request = new XMLHttpRequest(); request.open('GET', 'check_time.php', true); request.onreadystatechange = function() { if (request.readyState == 4 && request.status == 200) { // 把结果更新到页面,不需要刷新 document.getElementById('time_result').innerText = request.responseText; } } request.send(); } // 页面加载立刻执行一次 getTimeResult(); // 每1秒请求一次,实时更新,演示场景可以自行调整间隔时长 setInterval(getTimeResult, 1000); </script> </body> </html>
运行方式
把两个文件放到PHP运行环境的根目录下,访问index.html即可看到效果。如果演示时不需要等真实时间到7:30,可以临时修改check_time.php里的预设时间测试判断逻辑是否生效。
内容的提问来源于stack exchange,提问作者user13789330
相关产品推荐
相关产品推荐

