如何动态加载已被解析为PHP的Javascript?

时间:2012-07-10 03:05:42

标签: php javascript jquery

我希望动态加载已经解析为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。

3 个答案:

答案 0 :(得分:1)

您必须使用AJAX来执行此操作。

你可以将php脚本输出的数据存储到一个数组中,在php中内爆数组,然后回显出内爆的数组。

然后你可以获得ajax函数返回的字符串并将其分解回一个数组,你将获得你想要保存到变量的值。

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

答案 1 :(得分:1)

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

<?php

$config = array(
  // values
);

?>

<script>var config = <?php json_encode($config); ?>;</script>
<script src="myscript.js"></script> <!-- uses config data -->

答案 2 :(得分:1)

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

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

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

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