1

Ajax との最初の接触は今まさに行われており、ちょっと混乱しています。寄せられた質問の多くを読みましたが、答えを読むことができません。おそらくここのどこかにあるでしょう。

状況は、私はOOP PHPアプローチを使用しており、パラメーターを使用してindex.phpを通過するすべてです。そのため、フォームの投稿やボタンのクリックでは、他の .php ファイルを呼び出しません。

HTML リストボックスを作成しました (垂直スクロールバーを削除したいのですが、それはおまけです)。

ここで、各カテゴリをクリックして、他の div の出力を生成する特定の関数を呼び出したいと思います。

function swapContent(){
$("#myPresentDiv").html('<img src="../../imgs/ajax-loader-big.gif"/>').show();
var cat = $('#listbox').val();
$("#action").change(alert(cat));
var url = "&s=".cat;
$.post(url, {contentVar: cat} ,function(data) {
   $("#myPresentDiv").html(data).show();
});  

}

したがって、私の JQuery スクリプトは正しいカテゴリを取得し、アラート ダイアログに警告するので、それで問題ないと確信しています。そして、現時点でのコードを使用して、ページ全体をリロードして、ページ イン ページ イン ページを取得します。ページ内...

ページ全体ではなく、結果のみを返す JQ ajax 呼び出しを作成する方法を理解しようとしています。

URL「index.php&s="cat」を配置してから、どういうわけか ajax に「インデックスを通過し、関数 displayresults ($cat); を呼び出す」と伝えることはできますか?

私が書いたすべてがあなたにとって意味があることを願っています:)

Tnx。

4

6 に答える 6

1

URL の ajax 関数呼び出しは、html ドキュメント全体ではなく、ページ部分のみを返す必要があります。あなたが持っている場合

$.post('ajax.php',data,function(d){
  $('#responsediv').html(d).show();
});

ファイルajax.phpは、次のようなページ部分のみを返す必要があります

<div>This is the new content</div>    

そのため、ページ内にページがありません。

于 2012-04-04T12:30:59.593 に答える
0

私はかなり前に内部アプリに対して正確なことをしました....何が起こったのかというと、クラス名、関数名、関数パラメーターをajax変数を介して渡し、バックエンドのphpで同じものを読み取ってから適切なものを呼び出していましたそれらのパラメータを持つクラスで機能します。

PHPコード:

$option = trim($_GET['v']);

switch ( $option ) {
    case 1:
        $sid    = trim($_GET['q']);
        $page   = trim($_GET['p']);
        $method = trim($_GET['m']);

        $class  = new $page( $link );
        echo $class->$method( $sid );
    break;
    case 2:
        $page   = trim($_GET['p']);
        $method = trim($_GET['m']);

        $class  = new $page( $link );
        echo $class->$method();
    break;
    default:
        echo '';
    break;
}

しかし、これは内部アプリだったので、インジェクション攻撃、xss、xsrf、セッションハイジャックの問題はありませんでした。

お役に立てれば。

于 2012-04-04T12:35:40.030 に答える
0

ええ、それは理にかなっています。あなたの質問は基本的に次のとおりです。AJAX op の結果を取得してページに挿入すると、テンプレートではなくレイアウト全体が再度挿入されます。

解決策は、「スタイルが設定されていない」、つまりテンプレート データを持たない PHP スクリプトを呼び出すことです。したがって、PHP スクリプトは、ページではなく、短い HTML スニペットのみを出力する必要があります (このページから削除できる「ヘッダー」と「フッター」がある場合があります)。どのようなアクションを実行する必要があるかは、サーバー側で使用しているもの (フレームワーク) によって異なりますか? CMS? カスタム PHP アプリ?

于 2012-04-04T12:31:25.047 に答える
0

これを実装するのが無限に簡単になるので、いくつかのフレームワークを調べたいと思うかもしれません:

http://demo.atk4.com/demo.html?t=20

于 2012-04-08T11:14:42.110 に答える
0

If you look at the frameworks or cms out there, they basically have routes that map calls to your index.php function to methods of the controller.

This is a complex argument, you could try to start out reading this article

于 2012-04-04T12:26:29.720 に答える
0

ajaxリクエストを処理するための一般的な戦略を探していると思います

たとえば、サーバー側の Ajax

特定のフレームワーク (CI、yii など) を使用している場合を除きます。

于 2012-04-04T13:08:32.243 に答える