4 回答
TA贡献1828条经验 获得超3个赞
如果数据只在页面加载时需要一次,您可以在 PHP 代码中使用脚本块,然后使用 JS 函数来获取它。但是,如果数据根据用户与页面的交互进行更新,请记住,如果不使用 AJAX,则无法将数据从 PHP 中的服务器端发送到 JS 中的客户端。
我建议您阅读并使用以下 3 种方法之一:
XHR 获取 或axios
TA贡献1846条经验 获得超7个赞
您正在使用引号将字符串声明为可变数据。
请删除引号,这将符合您的期望。
因此,您的代码应替换为以下几行。
var data =<?php echo $data ?>;
TA贡献1789条经验 获得超10个赞
var data = <?php echo $data ?>;
或者
var data = JSON.parse("<?php echo $data ?>");
TA贡献1836条经验 获得超13个赞
最明显的问题是你的引号,它使变量成为 JavaScript 中的字符串,而不是具有数据结构的复杂对象。因此,对变量中属性等的任何引用都不起作用。应删除引号,以便将数据作为对象文字呈现到发出的 JavaScript 中。
但是还有另一个重要的问题:如果这是在你所说的 .js 文件中完成的,那么 PHP 解释器没有在那里运行,所以 echo 将不起作用(引号或不引号),因为它不是由执行的PHP又变成了数据。您只会看到直接嵌入 JS 代码中的 PHP 代码。
您必须将数据回显到 .php 文件中的脚本块中,然后调用 .js 文件中的适当函数并将数据作为参数传递。如果只需要一次数据,这将很好地工作。
例如
文件
<?php
$data = array[];
$data = json_encode($raw_data);
?>
<script src="someJsFile.js"></script>
<script>
var data = <?php echo $data ?>; //inject the data into the JS as an object literal
someFunc(data); //pass the data to a function in someJsFile.js
</script>
文件:
function someFunc(data) {
//your code to process the data
}
如果您需要在页面的生命周期内保持更新,那么您将需要 AJAX 才能从服务器请求新数据,如其他答案之一所建议的那样。
- 4 回答
- 0 关注
- 106 浏览
添加回答
举报