如何解决PHP可以使用JS中设置的条件动态加载文件吗?
我有一个 PHP 包含,当用户滚动到页面的某个部分时,它想插入到页面上。这可能吗?
类似于:
var hasPassedPoint = false;
$(window).scroll(function() {
var $this = $(this);
if ($this.scrollTop() > 400 && !hasPassedPoint) {
<?php
include $_SERVER['DOCUMENT_ROOT'].'/myFile.php';
?>
hasPassedPoint = true;
}
});
我试过了,但没有奏效,也许是因为页面加载时会打印出完整的 php 页面,而不是在动态达到某个点后打印出来?
这样的事情甚至可以实现吗?
解决方法
你不能在客户端运行 php ,页面渲染后在客户端运行的唯一东西是 Javascript ,
使用 Javascript + PHP 实现动态,你最常使用 XHR 或 Ajax / axios ...等, 假设您想在特定元素上的事件之后显示来自 myFile.php 的数据
var hasPassedPoint = false;
$(window).scroll(function() {
var $this = $(this);
if ($this.scrollTop() > 400 && !hasPassedPoint) {
axios.get('/myFile.php').then(function (response) {
// this is the data from myFile in response
// you display it with
document.getElementById('urdiv').innerHtml = response.data
})
hasPassedPoint = true;
}
});
,
PHP(运行它的服务器)已经完成解释/编译您的网站(取决于 PHP 的版本和使用的方法)在您(请求该网站的客户端)下载它并运行任何类型的JavaScript/CSS/HTML 本地解析。
? 假设下载的 HTML 与生成它的服务器有任何联系是错误的(除非你明确地制作了一个)。
? 如果您想在网站下载后加载动态生成的 HTML,例如响应任何JS事件(滚动是一个),你需要请求它。
? 检查 this documentation 如何请求文件和 this one 如何在对网站执行某些操作时触发请求。
➡然后,一旦下载的站点请求了有问题的文件(您的.php),您就可以在服务器端运行它并返回结果。该过程以及将服务器运行的 PHP 与您的客户端 JS 连接起来是您的服务器软件(fe Apache)的工作:它通过公开一个帮助它们交谈的接口来充当您的后端和前端代码之间的代理)。
❗ 请注意,您正在使用的代码使用 jQuery:使用它并复制教程(越旧越糟糕)会使您面临各种问题。通过 jQuery 完成的任何事情都可以用普通的 JS 完成,通常只需最少的努力。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。