当 JS 需要 PHP 变量时,如何将 javascript 与 PHP 分开?

2023-11-27

下面是我在 jquery 和 PHP 中看到的代码的一小段。

请注意第 5 行的 PHP 部分,我通常将 javascript 放入单独的文件中,那么我如何才能将 JS 保存在单独的文件中,但在需要时仍然使用 PHP,如下所示?

//when the DOM is ready  
$(document).ready(function(){  
    //settings on top  
    var domain = 'http://davidwalsh.name/';  
    var initialPosts = <?php echo get_posts(0,$_SESSION['posts_start']); ?>;  
    //function that creates posts  
    var postHandler = function(postsJSON) {  
        $.each(postsJSON,function(i,post) {  

我一般做的是:

  • 在 .js 文件中放入尽可能多的 JS(用于客户端缓存等)
  • 此 JS 代码使用 JS 变量
  • 该 JS 变量是从 PHP 文件声明/初始化的;实际上,这是唯一需要在服务器端执行一些代码的部分

例如,我想我会有这样的东西:

我的文件.php :

var thisIsMyJSVar = '<?php echo $test; ?>';

因此,在 PHP 中,我们声明变量并设置其值。这是“动态”部分。

并且,在 my-file.js 中:

//when the DOM is ready  
$(document).ready(function(){  
    //settings on top  
    var domain = 'http://davidwalsh.name/';  
    var initialPosts = thisIsMyJSVar;  // Use the JS variable declared in the PHP file
    //function that creates posts  
    var postHandler = function(postsJSON) {  
        $.each(postsJSON,function(i,post) {

这里,在静态 JS 文件中,我们只使用值 ;这里没有什么是动态的,并且该文件可以由客户端缓存——而不会在每个页面上重新下载。


这个想法的问题是 JS 文件依赖于 PHP 文件中完成的一些初始化:-(

因此,在 JS 文件中设置一个“默认值”可能是个好主意,以防万一......


另外,你必须有一个良好的命名约定,不要有多个文件使用/声明/依赖于同一个 JS 变量;实际上,将所有“配置变量”放入单个 javascript 对象中可能是一个好主意,以免污染全局名称空间......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 JS 需要 PHP 变量时,如何将 javascript 与 PHP 分开? 的相关文章

  • Ajax 内容和 jQuery 动画效果

    我正在尝试使用 jQuery 动画效果为 WordPress 帖子制作 Ajax 内容 问题是第一个动画 在本例中 fadeOut 工作正常 但第二个 FadeIn 或我尝试使用的任何动画效果没有对新内容生效 加载的内容只是出现 没有任何效
  • 我应该如何实现将状态保存到 localStorage?

    CODE var React require react var Recipe require Recipe jsx var AddRecipe require AddRecipe jsx var EditRecipe require Ed
  • 当路由不存在时重定向 laravel 4

    我正在使用 laravel 4 当我的项目处于生产模式时 我得到 抱歉 找不到您要查找的页面 当我到达一条不存在的路线时 当我 grep 我的代码时 它在两个地方找到 vendor symfony debug Symfony Compone
  • IE localStorage 事件失火

    在 Internet Explorer 9 和 10 中 localStorage 实现意外地触发事件 这里有很棒的线索 Chrome 的 localStorage 实现存在错误 https stackoverflow com questi
  • 如何从另一个数组值中过滤数组值并返回新数组? [复制]

    这个问题在这里已经有答案了 我有两个数组 all languages and taken languages 第一个包含所有语言 例如 200 种或其他语言 第二个包含之前选择的语言 从 0 到 200 种 我需要删除所有已采用的语言 ta
  • 从检查元素隐藏 ''

    我有这个 HTML 和 PHP 联系表
  • ES6 静态方法引用 self? [复制]

    这个问题在这里已经有答案了 我有两节课 存储库和用户存储库 我想在 Repository 中定义一个静态方法 该方法在运行时调用 UserRepository 中的静态函数 有什么干净的方法可以做到这一点吗 class Repository
  • 自定义 WordPress 画廊 html 布局

    当使用默认媒体上传器在 WordPress 中创建图像库时 WordPress 将图像包装在一堆 HTML 标记中 如何在生成之前覆盖它 以便我可以输出所需的标记并更改创建图库布局的方式 目前 WordPress 生成的代码如下 div d
  • 在“onClick”上切换 DIV 高度

    我想切换分区的高度 我尝试过将 animate 与 if else 语句一起使用 但它只会反弹 我现在使用的代码将隐藏我的分区而不是切换高度 点击时会触发 document ready function content1 toggle fu
  • 将 echo 和 print 合并到一个语句中

    echo 1 print 2 3 返回 214 脚本如何以 14 结尾 当你这样做时 echo 1 print 2 3 PHP 会做 demo http codepad viper 7 com OfrNrs line op fetch ex
  • 检查浏览器空闲的替代方法

    我有一个简单的网络信息亭 在鼠标未使用 jQuery 移动 30 秒后显示用户操作提示 var i null body wrap mousemove function clearTimeout i overlay fadeOut i set
  • 为什么我的 D3 SVG 图上的轴不会更新?

    I have 简单的 D3 散点图 http www raxacoricofallapatorius com test scattertest html我在显示数据的几个不同属性之间切换 但是虽然我可以更改数据点 并按照我想要的方式进行转换
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • 使用 Xpath 进行部分匹配

    我正在尝试创建一个搜索功能 允许使用 Xpath 按歌曲标题或流派进行部分匹配 这是我的 XML 文件
  • PHP Json_encode 将空格更改为加号 +

    我有一个网络应用程序 我首先将 JSON 数据存储在 cookie 中 然后每 x 秒保存到数据库 它只是打开与服务器的连接 服务器读取 cookie 它实际上并不通过 POST 或 GET 发送任何内容 当我保存到 cookie 时 我的
  • 议程周视图中的标题显示因加载的 fullcalendar js 文件而异

    在议程周视图中 日历标题中各天之间显示的破折号根据我加载的 fullcalendar js 显示有所不同 例如 如果我加载完整的 calendar js 文件 它会按预期工作 2015 年 2 月 8 日至 14 日 使用此脚本标签 当我尝
  • ‘state’未定义 no-undef

    我使用教程来学习 React 但我很快就陷入困境 在教程中 他们使用以下代码 import React Component from react class Counter extends Component state count 0 r
  • 使用 Webmin 设置 cron 作业

    我正在尝试使用 Webmin 设置一个 Cron 作业每 5 分钟运行一次 它需要定位 php 文件并运行该文件中的 php 脚本 当我在 命令 字段中输入文件路径时 它不起作用 我只是想知道我做错了什么 以及我需要 Cron 作业运行的文
  • 在 Firestore 文本字段中存储文本文件并删除换行符

    我正在尝试将 CSV 文件存储在 Cloud Firestore 内的文本字段中 然而 Firestore 正在删除所有换行符并将整个 CSV 文件存储为一行 这Firestore 数据类型文档 https firebase google
  • 如何从 Cloud Functions for Firebase 文件夹读取证书文件

    我正在尝试读取 certs 文件夹下的文件 如下所示 functions certs idp public cert perm 这是我用来读取文件的代码 fs readFileSync path join dirname certs idp

随机推荐

  • 如何在 Firefox 3 中从 HTML 输入表单获取文件路径

    我们有简单的 HTML 表单
  • ASP.NET 4.5 TryUpdateModel 不使用母版页在 WebForm 中选取表单值

    我正在使用 WebForms 并且尝试在母版页内执行模型验证 由于某种原因 模型没有获取值 这意味着如果我输入一个好的值 则在验证触发后 模型会一直返回空 因此一遍又一遍地触发验证 如果我将代码放在没有母版页的页面中 它就可以正常工作 我举
  • 从 javascript 在浏览器 (Chrome) 中播放声音

    我正在写一个 html 页面 我希望它在运行时按照某些 JavaScript 的指定发出声音 在 html 中 按照我在这里阅读的答案中的建议 我有以下行 这会在加载时播放声音 因此我确信我已经给出了有效 wav 文件的有效路径 一旦一切正
  • gcc 的 __attribute__((packed)) / #pragma pack 不安全吗?

    在 C 中 编译器将按照声明的顺序布置结构体的成员 并在成员之间或最后一个成员之后插入可能的填充字节 以确保每个成员正确对齐 gcc 提供了语言扩展 attribute packed 它告诉编译器不要插入填充 从而允许结构成员不对齐 例如
  • 在 MATLAB 中标准化矩阵的快速技术

    我想在 Matlab 中标准化矩阵的每一列 我尝试了两种实现 选项A mx max x mn min x mmd mx mn for i 1 size x 1 xn i x i mn mmd 0 mmd mmd 0 2 2 1 end 选项
  • 如何从 Tensorflow.js (.json) 模型转换为 Tensorflow (SavedModel) 或 Tensorflow Lite (.tflite) 模型?

    I have 下载的来自 Google 的 Tensorflow js tfjs 的预训练 PoseNet 模型 因此它是json file 但是 我想在Android上使用它 所以我需要 tflite模型 尽管有人将类似的模型从 tfjs
  • scanf /字段长度:使用变量/宏,C/C++

    使用 scanf 时如何使用变量来指定字段长度 例如 char word 20 1 scanf file 20s word 另外 使用 20 1 是否正确 因为它需要在末尾添加 0 相反 我想要这样的东西 define MAX STRING
  • WebRTC java 服务器问题

    我想我已经非常接近让我的 Java 服务器应用程序通过 WebRTC 与浏览器页面对话 但我还不能完全让它工作 我觉得我遗漏了一些小东西 所以我希望这里有人可以提出建议 我仔细研究了 WebRTC 示例 Java 单元测试 org webr
  • 如何从 tslint 中排除文件夹?

    我喜欢排除test在 vscode 中使用 tslint 进行文件夹表单 linting 所以我在 tslint json 配置文件中放置了一个排除项 不幸的是 排除语句不起作用 有谁知道如何设置排除吗 exclude tests ts r
  • 使用 Javascript 读取文本文件

    以下代码应在加载时读取当前目录中的文本文件的内容 并将其显示在 html 页面上 我尝试自行修改 但它没有给出输出 有没有更简单的方法可以使用其他方法获得此结果 或者请帮忙找出这段代码有什么问题
  • 如何在 Swift 中使用 XIB 文件初始化/实例化自定义 UIView 类

    我有一堂课叫MyClass这是一个子类UIView 我想用一个初始化XIB文件 我不确定如何使用名为的 xib 文件初始化此类View xib class MyClass UIView what should I do here init
  • 服务层的 Spring AOP

    我需要一些有关 Spring AOP 的帮助 我有以下代码 Service public class UserSecurityService implements UserDetailsService Autowired private U
  • 为什么有些资源有名称和“名称”属性?

    我是 Terraform 的新手 正在尝试在 Azure 上创建一些资源 对我来说 资源名称和属性之间似乎存在一些不必要的重复name在定义中 resource azurerm resource group group name name
  • 如何将 ${CHANGES} 传递给下游作业?

    我有上游工作轮询 SVN 进行更改 如果检测到更改 则开始构建 构建完成后 上游项目调用下游项目运行测试 我正在使用 触发参数化构建 我希望下游项目能够发送一封电子邮件 其中包含测试结果以及导致构建 测试的 SVN 更改 但问题是 如果我在
  • 关于虚函数的成本

    如果我在循环中调用虚拟函数 1000 次 我会承受 1000 次还是仅一次的 vtable 查找开销 编译器也许能够优化它 例如 以下内容 至少在概念上 很容易优化 Foo f new Foo for int i 0 i lt 1000 i
  • Android NDK Native方法未找到错误

    我正在尝试使用本机代码构建 android 应用程序 所以我想测试 ndk 是否成功运行 当我尝试运行我的第一个 hello world 项目时 日志猫说 01 21 23 30 06 780 E AndroidRuntime 939 FA
  • 打开受密码保护的 sqlite 数据库

    我创建了一个受密码保护的 sqlite 数据库 我希望能够查看数据库 以便在项目开发过程中检查是否正确插入了内容 我已经下载了 sqlite 数据库浏览器 但这似乎不允许您打开加密数据库 有没有一种方法可以打开数据库文件 感谢您的任何帮助
  • 存在哪些 CLR/.NET 字节码工具? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我非常了解用于操作 生成 反编译 JVM 字节码的 Java 工具 ASM cglib jad 等 CLR 字节码有哪些类似的工具 人们会为 CLR
  • 如何导入单个 Lodash 函数?

    使用 webpack 我正在尝试导入isEqual since lodash似乎正在进口一切 我尝试执行以下操作但没有成功 import isEqual from lodash import isEqual from lodash lang
  • 当 JS 需要 PHP 变量时,如何将 javascript 与 PHP 分开?

    下面是我在 jquery 和 PHP 中看到的代码的一小段 请注意第 5 行的 PHP 部分 我通常将 javascript 放入单独的文件中 那么我如何才能将 JS 保存在单独的文件中 但在需要时仍然使用 PHP 如下所示 when th