6

我有一个对 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 页面的地方。

我的问题是:我需要再次包含我的 php 类文件"tabela_reservas.php"还是有另一种方法?

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

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

谢谢!

4

4 回答 4

4

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

所以是的,您需要再次包含所有内容。

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

于 2013-01-03T12:31:08.267 回答
3

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

所有 ajax 请求都是全新的,与当前(调用者)页面没有任何关系。将它们视为正在调用的新页面:)

于 2013-01-03T12:30:49.003 回答
3

AJAX 调用意味着:您正在调用一个新页面。调用来自哪里并不重要,就像在后台调用新页面一样。

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

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

于 2013-01-03T12:30:53.230 回答
0

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

于 2013-01-03T12:31:28.513 回答