为了账号安全,请及时绑定邮箱和手机立即绑定

如何将php变量放在不同的javascript对象中?

如何将php变量放在不同的javascript对象中?

PHP
沧海一幻觉 2023-06-18 15:54:09
我正在尝试从 php 获取数据,将其存储为 json 并将其加载到我的 javascript 代码中。我像这样将我的变量存储在 php 中:$data = array[]; $data = json_encode($raw_data);现在我想检索该数据并在我的 javascript 文件中使用它。我试图在我的 js 文件中使用以下代码:var data ="<?php echo $data ?>";
查看完整描述

4 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

如果数据只在页面加载时需要一次,您可以在 PHP 代码中使用脚本块,然后使用 JS 函数来获取它。但是,如果数据根据用户与页面的交互进行更新,请记住,如果不使用 AJAX,则无法将数据从 PHP 中的服务器端发送到 JS 中的客户端。

我建议您阅读并使用以下 3 种方法之一:

XHR 获取 或axios


查看完整回答
反对 回复 2023-06-18
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

您正在使用引号将字符串声明为可变数据。

请删除引号,这将符合您的期望。

因此,您的代码应替换为以下几行。

var data =<?php echo $data ?>;


查看完整回答
反对 回复 2023-06-18
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

var data = <?php echo $data ?>;

或者

var data = JSON.parse("<?php echo $data ?>");


查看完整回答
反对 回复 2023-06-18
?
开心每一天1111

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 才能从服务器请求新数据,如其他答案之一所建议的那样。


查看完整回答
反对 回复 2023-06-18
  • 4 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信