You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 20:57:03