2012-02-05 3 views
1

fancybox에 모달 창이있는 스크립트를 만들고로드시 다른 파일의 일부 내용으로 채 웁니다. 그리고 나는 몇 가지 의문을 가지고 있습니다 :로드와 같은 ajax 사용

내 컨테이너에 ajax를 통해 콘텐츠를로드하려고합니다 (# dialog-analogy). 하지만 전체 페이지가 아닌 - id가 하나 인 div (# get-cats). 나도 몰라. 아약스 페이지에서 이드의 내용을 얻는 법.

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

한 번에 ** ** 한 번만 질문하십시오. 이 질문에서 두 번째 질문을하고 별도로 게시하십시오. –

답변

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'를 사용하는 예제를 추가했습니다. –