如何从JS中访问另一个文件中的PHP数组

How to access a PHP array from JS "in another file"?

本文关键字:文件 PHP 数组 另一个 访问 JS      更新时间:2023-09-26

我已经看到了这个答案(以及其他几个),它提供了一种可以理解的访问PHP数组的方法。但是在这个例子中,PHP和JavaScript在同一个文件中。

然而,由于某些原因,我不能在我的PHP文件中编写Javascript,而我正在做的是调用另一个文件中的JS。所以我需要从JS文件中的PHP访问数组。我该怎么做呢?

我更喜欢没有AJAX (如果可能的话),因为我还没有开始学习AJAX

您可以使用JSONP方法:

让你的PHP文件输出你的数据包装在一个函数调用中——像这样:

callback(
  ['your', 'data', 'here']
);

对于PHP变量,可以这样做:

callback(<?php echo json_encode($data) ?>);

然后在JavaScript文件中这样做:

function callback(data) {
  alert( data.join(' ') ); // will alert 'your data here'
}

在你的HTML文件中只包括上面的JS文件,然后包括另一个脚本标签,指向你的php文件:

<script src="/path/to/local.js"></script>
<script src="http://yourserver.com/path/to/server.php"></script>

浏览器将获取第一个文件,并计算函数声明。然后,它将获取第二个文件,并查看它是一个函数调用,并立即以数据作为参数执行函数。

一个快速的解决方案是将JavaScript文件变成PHP文件,并在包含脚本时传递所需的所有变量:

<script type="text/javascript" language="javascript" src="./script.php?var=<?php print(json_encode($var)); ?>"></script>

在JavaScript文件中,你可以这样使用PHP变量:

var a=JSON.parse(<?php print($_REQUEST['var']); ?>);