我有一个index.php文件,它将根据$ _GET变量加载内容。所以,它基本上就像这样......
<?php
$problem_id = $_GET['problem_id'];
include('include/' . $problem_id . '.php');
?>
因此,如果用户点击问题类型#8,8.php
将包含在index.php文件中,并且将显示其内容。
问题是我现在正在使用AJAX加载8.php
(或选择的任何文件)。一些文件依赖于其他javascript文件(即<script type="text/javascript" src="/include/js/api/utils.js"></script>
)来工作。当我通过AJAX运行index.php文件时,似乎没有加载这些依赖项。如果我在URL中使用普通的$ _GET变量(即http://myscript.com?problem_id=8
)运行它,它可以正常工作。
这是AJAX的已知问题吗?不管怎么说呢?
感谢。
答案 0 :(得分:2)
您尚未指定加载所需的javascript文件的位置。但是,如果我们假设它们被你的php脚本包含在内,那么当你直接访问那个php脚本时它们会起作用,但当你通过ajax包含它时它们不会。
我的建议是简单的方法,就是在你的调用页面(index.php)中包含所有的javascript,以便它可以随时使用,无论动态加载哪个内容。
因此,请始终提前加载依赖项,并且不要将它们包含在包含的php文件中。
当您通过ajax加载内容时,它确实需要是可以合并到现有页面DOM中的html,加载javascript并执行它并不是那么简单,尽管这是可能的(使用requirejs或类似)但我认为可能上述简单的方法对你有用。