2

私はいくつかの基本的なAjaxのことをやっています(jqueryではなく、基本を学んでいます).htmlがデータを送信して特定のphpページを実行するjavascript関数を呼び出す一般的な構造を設定しています。

しかし、すでに functions.php で定義されている php 関数を実行する必要がある場合はどうでしょうか。それはまったく可能ですか?タスクごとに新しい php ファイルを作成するのにうんざりしています ;)

4

3 に答える 3

10

次のようなものを処理するために、php でクラスを定義できます。

functions.php:

class MyFunctions {
   function foo() {
      // code here
      // if you need to pass in some parameters, you can do it via jQuery and fetch the data like so (for the jQuery, see below)
      if($_GET['name'] == "john") { } // do stuff
   }

   function bar() {
      // code here
   }

   static function handleFn($fName) {
      if(method_exists(__CLASS__, $fname)) {
         echo $this->{$fname}(); die; // since AJAX, just echo the output and stop executing
      }
   }
}

if(!empty($_GET['f'])) {
   MyFunctions::handleFn($_GET['f']);
}

次に、次のように ajax 呼び出しを行います (jQuery を想定):

$.get("/functions.php?f=func_name_to_call", {name: "John", hobby: "Programming"}, function(data) {
});
于 2010-12-06T02:08:34.343 に答える
2

PHP スクリプトでは、GET 変数をチェックするように設計された if ステートメントで各関数を囲みます。次に、JS で、その関数を呼び出すために必要な変数に固有の GET 変数を送信します。

于 2010-12-06T02:09:02.660 に答える
0

ajaxもhttpリクエストであり、php関数を直接呼び出すことはできません

于 2010-12-06T02:40:10.933 に答える