0

jQueryからファイル内でPHP関数を呼び出すことについていくつかの調査を行ってきましたが、失敗することなくこれを行う適切な方法を見つけることができないようです。WordPressベースの単一ページWebサイトを作成するために、MVVMを使用して中間(一種の)CMSを作成しようとしています。

現時点では、割り当てられたファイルで PHP 関数にアクセスしようとしているところにちょっと行き詰まっています。ファイルごとに関数を使用してそれを行う方法について、ここここここで例を見てきましたが、より明確な概要が得られるため、ファイル内の関数を呼び出すことができます。

リンクを確認しましたが、正しいです。PHP ファイルが呼び出さposts.phpれ、 で定義された場所にありますがwindow.MODELS、関数fetch_allは実行されません。

JavaScript

//call php function
var requestURL = window.MODELS + 'posts/fetch_all';

$.get(requestURL, function(data){
    console.log('checking data: ', data);
}, 'json')
    .done(function(passed){
        console.log('it worked!');
    })
    .fail(function(failed){
        console.log('it failed :( ');
    });

PHP

public function fetch_all(){
    return json_encode("this is fetch_all..."); //replace text to get all posts with get_posts()
}  

コンソールに JavaScript の失敗が表示されます:「失敗しました :(」。「fetch_all」を実行してデータを返すにはどうすればよいですか?

4

1 に答える 1

3

jQuery から呼び出す URL は、サーバー上の .php ファイルの場所と一致する必要があります。たとえば、呼び出す正しい URL は次のとおりです。

var requestURL = window.MODELS + 'posts.php?action=fetch_all';

次に、PHP ファイル内で、クエリ パラメータに従って呼び出す関数を選択する必要があります。関数宣言の後に次のコードを追加して、'action' クエリ パラメータに応じて適切な関数を呼び出すことができます。

if ($_REQUEST['action'] == 'fetch_all')
    echo fetch_all();
else
    echo json_encode( array( 'status' => 'error') );

また、単に返されるのではなく、出力を生成するために出力をエコーする必要があることも覚えておいてください。

お役に立てば幸いです、A.

于 2013-04-16T22:31:52.263 に答える