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