我在 PHP 中有一个变量,我需要它在我的 JavaScript 代码中的值。如何将我的变量从 PHP 获取到 JavaScript?
我的代码如下所示:
<?php
$val = $myService->getValue(); // Makes an API and database call
在同一页面上,我的 JavaScript 代码需要 $val
变量的值作为参数传递:
<script>
myPlugin.start($val); // I tried this, but it didn't work
<?php myPlugin.start($val); ?> // This didn't work either
myPlugin.start(<?=$val?>); // This works sometimes, but sometimes it fails
</script>
原文由 Madara‘s Ghost 发布,翻译遵循 CC BY-SA 4.0 许可协议
实际上有几种方法可以做到这一点。有些需要比其他更多的开销,有些被认为比其他更好。
没有特别的顺序:
在这篇文章中,我们将检查上述每种方法,并了解每种方法的优缺点,以及如何实现它们。
1.使用AJAX从服务器获取你需要的数据
这种方法被认为是最好的,因为 您的服务器端和客户端脚本是完全分开的。
优点
缺点
实现示例
使用 AJAX,您需要两个页面,一个是 PHP 生成输出的地方,第二个是 JavaScript 获取该输出的地方:
获取数据.php
index.php(或任何实际页面的名称)
上述两个文件的组合会在文件加载完成时提示
42
。更多阅读材料
2. 将数据回显到页面某处,并使用 JavaScript 从 DOM 获取信息
这种方法不如 AJAX 可取,但它仍然有其优点。从某种意义上说,PHP 和 JavaScript 之间仍然 相对 分离,因为 JavaScript 中没有直接的 PHP。
优点
缺点
<input type=hidden>
来存储信息,因为从inputNode.value
中获取信息更容易,但这样做意味着您在您的 HTML 中有一个无意义的元素。 HTML 具有<meta>
用于文档数据的元素,而 HTML 5 引入了data-*
数据属性,专门用于使用可与特定元素关联的 JavaScript 读取的数据。实现示例
有了这个,想法是创建某种不会向用户显示但对 JavaScript 可见的元素。
索引.php
3. 将数据直接回显到 JavaScript
这可能是最容易理解的。
优点
缺点
实现示例
实现相对简单:
祝你好运!