PHP OOPには比較的新しいので、コントローラ経由でPHPクラスの関数を呼び出すことができないようです。私の現在の設定は次のとおりです。PHP OOP、jQuery、MVC
- のindex.php
- class.Class1.php 私には、 index.phpの以内
- functions.controller.php
- script.js
class.Class1.php、新しいClassオブジェクトを作成し、いくつかのHTMLを出力するメソッドをいくつか使用します。私はscript.jsでjs関数を使用してfunctions.controller.phpと通信し、class.Class1.phpのメソッドを呼び出して戻ります(リンクのonclick属性を使用して呼び出されます)script.jsへのデータは、index.phpにHTMLを出力します。
問題は、特定のオブジェクトのデータを取得するためにメソッドを使用する方法がわかりません。私は、コントローラを呼び出すとき:
$.ajax({
type: 'GET',
url: 'functions/functions.controller.php',
data: 'r=' + 'h',
success: function(data){
$('.showing').html(data);
}
});
を私は500内部サーバーエラーを取得:
[25-Oct-2011 01:24:06] PHP Warning: include(classes/class.Class1.php) [function.include]: failed to open stream: No such file or directory in /Users/Joey/Desktop/root/Test/functions/functions.controller.php on line 7
[25-Oct-2011 01:24:06] PHP Warning: include() [function.include]: Failed opening 'classes/class.Class1.php' for inclusion (include_path='.:/Applications/MAMP/bin/php5.3/lib/php') in /Users/Joey/Desktop/root/Test/functions/functions.controller.php on line 7
[25-Oct-2011 01:24:06] PHP Fatal error: Class 'Class1' not found in /Users/Joey/Desktop/root/Test/functions/functions.controller.php on line 9
これはcontroller.phpです:
include('classes/class.Class1.php');
$in = new Class1;
echo $in->getData();
誰もがこの上でいくつかの光を当てるていただけますか?また、AJAXのヒントを持つ他のPHP OOP MVCも歓迎します。現在のコードをもっと必要とするなら、私は投稿して喜んでします。
本当にコントローラに直接要求する必要はありますか?あなたが達成しようとしている何らかのMVCのように見えます。コントローラーによって処理される '/ my/url'のようなURLはありませんか? – PeeHaa
500レスポンスのWebサーバーログに表示されるエラーメッセージは何ですか?また、あなたの質問の先頭に記載されているファイル名とコード内の参照との間には多少の矛盾があるようです。あなたはそれを掃除できますか? – Phil
@PeeHaa MVCはURL書き換えを自動的には暗示しないので、私はその前提にジャンプしません – Phil