如何让PHP代码在页面加载与点击searchbutton时均执行?
问题解答
首先明确:你写的(window.onload) OR (isset($_POST['searchbutton']))这种写法行不通。因为window.onload是前端JavaScript的页面加载事件,而PHP是运行在服务器端的脚本,在页面发送给浏览器之前就执行完了,根本无法识别前端的window对象,两者属于完全不同运行阶段的代码,不能混在同一个PHP的if条件里。
要实现页面加载时自动执行,同时保留点击按钮触发的功能,你可以直接判断两种情况:要么是点击按钮触发了POST请求,要么是页面首次加载的GET请求(默认页面加载都是GET)。修改后的代码如下:
<?php // 当点击按钮提交POST,或者页面首次加载(GET请求)时执行 if (isset($_POST['searchbutton']) || $_SERVER['REQUEST_METHOD'] === 'GET') { $time = time(); $time_now = date("H:i:s", $time); echo $time_now; } ?>
如果你的页面还有其他POST场景(比如其他表单提交),不想在那些时候执行,也可以更精准:只在没有POST提交,或者POST里存在searchbutton的时候执行,代码如下:
<?php if (empty($_POST) || isset($_POST['searchbutton'])) { $time = time(); $time_now = date("H:i:s", $time); echo $time_now; } ?>
第一种写法更直观,完全能覆盖你的需求——页面打开时(GET)自动输出时间,点击按钮提交后也输出最新时间。
内容的提问来源于stack exchange,提问作者Fifcok
相关产品推荐
相关产品推荐

