我是否需要在ajax加载的PHP页面中再次包含PHP脚本?

时间:2013-01-03 12:29:11

标签: php jquery

我有一个对php页面的ajax调用,我在其中使用GET传递ID。

<script>
$("#oid").change(function(){
    var oid = $(this).val();
    alert(oid);
    $.ajax({
        type: "GET", 
        url: "tabela_reservas.php",
        data: "oid="+oid,
        success: function(html) {
            $("#tabela_reservas").html(html);
        }
    });
});
</script>

它有效,除了PHP给我一个错误:

  

致命错误:在第20行的C:\ xampp \ htdocs \ kwagenda \ tabela_reservas.php中找不到类'Reserva'

如果我在"tabela_reservas.php"中包含我的课程文件,那么它可以正常工作。但是这些类文件已经加载/包含在我的"index.php"中,我称之为ajax页面。

我的问题是:我是否需要再次在"tabela_reservas.php"上包含我的php类文件,或者还有另一种方法吗?

我问这个是因为,对我而言,它似乎不是一个非常优雅的解决方案,而且它看起来像是一个开销,因为我将在我的页面上加载两倍相同的东西。

这是正确的做法还是有另一种做法?

谢谢!

4 个答案:

答案 0 :(得分:4)

当您向服务器发出ajax请求时,这是一个全新的请求,就像导航到另一个页面一样。

所以是的,你需要再包括一切。

您应该研究类的自动加载,以获得更优雅的解决方案以包含类。

答案 1 :(得分:3)

您需要在tabela_reservas.php中再次包含所有类文件,因为index.phptabela_reservas.php之间没有任何关系。

所有ajax请求都是全新的,与当前(调用者)页面没有任何关系。将这些视为一个被称为的新页面:)

答案 2 :(得分:3)

AJAX通话意味着:您正在呼叫新页面。呼叫来自何处并不重要,就像在后台调用新页面一样。

因此它会被重新解析,就像浏览器访问它时会被解析一样。

是的:您必须在通过AJAX调用的任何脚本中包含所有必需的脚本。

答案 3 :(得分:0)

你需要让这个类的另一个实例在另一个脚本中使用它。另一种方法是使用PHP自动加载/魔术加载(参见:PHP: Autoloading