2

我希望动态加载已解析为 PHP 的 javascript,以便能够将 PHP 变量传递给 javascript,然后将此文件加载到主 PHP 文档中。我有一个名为 myscript.js.php 的文档,其中包含 javascript 和 PHP。我尝试使用 jQuery 的 getScript 将它加载到主文档中,如下所示:

$.getScript("myscript.js.php", function() {
                alert('loaded script.');
            });

此尝试失败 - 我假设是因为文件上的 .php 扩展名。反正有动态加载包含 PHP 的 javascript 吗?我有一些会话变量,我希望通过 javascript 传递这些变量,这些变量会经常更新,从而需要重新加载 javascript。

4

3 回答 3

1

您将不得不使用 AJAX 来执行此操作。

您可以将 php 脚本输出的数据存储到数组中,在 php 中内爆数组,并回显内爆数组。

然后,您可以获取 ajax 函数返回的字符串并将其分解回一个数组,您将拥有您试图保存到变量的值。

您可以使用 jQuery 完成此操作:http: //api.jquery.com/jQuery.ajax/

于 2012-07-10T03:09:11.097 回答
1

像这样动态创建 javascript 可能并不理想。您最好将原始数据从 php 打印到变量中,然后您的脚本可以使用这些数据:

<?php

$config = array(
  // values
);

?>

<script>var config = <?php json_encode($config); ?>;</script>
<script src="myscript.js"></script> <!-- uses config data -->
于 2012-07-10T03:11:33.870 回答
1

您的代码看起来语法正确。你检查了ajax调用的状态吗?您必须在返回的 php 页面中设置一个标题,

header('Content-Type: text/javascript; charset=UTF-8');

因为否则 jquery 将抛出一个错误,因为它期望返回一个脚本文件并且标头与它不匹配。

看看这个.. http://api.jquery.com/jQuery.getScript/#comment-104973932

于 2012-07-10T03:20:20.537 回答