2012-02-05 7 views
1

私はいくつかのスクリプトを作成します。そのスクリプトは、ファンシーボックスにモーダルウィンドウを持ち、ロード時には他のファイルからのコンテンツによっていっぱいになります。そして、私はいくつかの疑問を持っています:ajaxのような負荷を使用する

コンテナにajax経由でコンテンツをロードしたいのですが(#dialog-analogy)。しかし、フルページではなく、idを持つdivは1つだけです(#get-cats)。私は知りません、どのようにajaxのページからIDの内容を取得する。ティは、ドラフトスクリプトです:

function FillCats(catid) { 
    $.ajax({ 
     url: "catalogue.php?cat="+catid+"&size=1", 
      cache: false, 
      success: function(html){ 
        var getcat = $('#get-cats').html(html); // wrong 
      $("#dialog-analogy").html(getcat); 
      } 
    }); 
} 
+3

は、ライブで使用しないでください、それは悪い、MKEYですか?代理人を使用してください! –

+4

**一度に**一つの**質問にお尋ねください。あなたの2番目の質問を出して別に投稿してください。 –

答えて

3

あなたはjQueryのload機能は、あなたが希望通りの機能を持っていることを知って喜んでいますよ。セレクタをURLの最後に追加するだけです。

function FillCats(catid) { 
    $("#dialog-analogy").load("catalogue.php?cat="+catid+"&size=1 #get-cats"); 
} 

loadドキュメントのLoading Page Fragments sectionを参照してください。何らかの理由であなたがloadを使用できない場合

Live example using load


、あなたはあなたが$()を介して受信した内容の構造を構築し、その要素(複数可)を抽出することにより、容易にそれをエミュレートすることができます欲しい:

function FillCats(catid) { 
    $.ajax({ 
     url: "catalogue.php?cat="+catid+"&size=1", 
     cache: false, 
     success: function(data) { 
      $("#dialog-analogy").html($(data).find("#get-cats")); 
     } 
    }); 
} 

Live example emulating load using ajax

+0

はい、私は負荷について知っています。しかしロードは結果をキャッシュしました... – skywind

+0

@Vladimir:あなたのJavaScriptコードはキャッシュ可能性を制御すべきではありません。これはサーバーの仕事です。コンテンツをキャッシュ不可能にする必要がある場合は、コンテンツ・サーバー側に正しいキャッシュ・ヘッダーを設定します。しかし、代わりに 'ajax'を使った例を追加しました。 –