6

GET を使用して ID を渡す PHP ページへの ajax 呼び出しがあります。

<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でエラーが発生することを除いて、機能します。

致命的なエラー: クラス 'Reserva' が C:\xampp\htdocs\kwagenda\tabela_reservas.php 行 20 に見つかりません

クラスファイルをに含めると、機能し"tabela_reservas.php"ます。しかし、これらのクラス ファイルは、"index.php"この ajax ページを呼び出している場所から既に読み込まれている/含まれています。

私の質問は、私のphpクラスファイルを"tabela_reservas.php"再度含める必要がありますか、それとも別の方法がありますか?

私がこれを尋ねるのは、それはあまり洗練された解決策ではないように思われるからです。また、ページに同じものを 2 回ロードすることになるため、オーバーヘッドのように見えるからです。

これは正しいことですか、それとも別の方法がありますか?

ありがとう!

4

4 に答える 4

4

サーバーに ajax リクエストを送信すると、別のページに移動するのと同じように、これはまったく新しいリクエストになります。

はい、もう一度すべてを含める必要があります。

クラスを含めるためのより洗練されたソリューションについては、クラスの自動ロードを検討する必要があります。

于 2013-01-03T12:31:08.267 に答える
3

tabela_reservas.phpと の間には関係がないため、すべてのクラス ファイルを に再度含める必要がありindex.phpますtabela_reservas.php

すべての ajax リクエストは、現在の (呼び出し元) ページとは関係なく、まったく新しいものです。それらを呼び出される新しいページと考えてください:)

于 2013-01-03T12:30:49.003 に答える
3

AJAX 呼び出しの意味: 新しいページを呼び出しています。呼び出しがどこから来たかは関係ありません。バックグラウンドで新しいページを呼び出すようなものです。

そのため、ブラウザがアクセスした場合に解析されるのと同じように、新たに解析されます。

はい: AJAX 経由で呼び出すスクリプトには、必要なすべてのスクリプトを含める必要があります。

于 2013-01-03T12:30:53.230 に答える
0

このクラスの別のインスタンスを別のスクリプトで使用する必要があります。これを行う別の方法は、PHP のオートローディング / マジック ローディングを使用することです ( PHP: Autoloadingを参照) 。

于 2013-01-03T12:31:28.513 に答える