2012-09-27 8 views
1

ajax 호출을 작성하고 웹 페이지에 결과를 기록하는 간단한 텍스트 jquery 코드가 있습니다. 그것은 독자적으로 작동하지만 drupal 7 사이트의 페이지에는 포함되지 않습니다.drupal 7 jquery ajax 호출이 작동하지 못하도록합니다.

코드는 hook_block_view_alter()를 사용하여 페이지에 쓰는 사용자 정의 모듈을 통해 포함됩니다. 여기입니다 :

<script type="text/javascript" src="/path/to/jquery.js"></script> 
<script> 
$(document).ready(function(){ 
    $("#carrotlink").click(function(event){ 
     event.preventDefault(); 
     alert("starting ajax call."); 
     $.ajax({ 
     type: "GET", 
     url: 'http://my.datasource.page/', 
     data: "parameter=5", 
     success: function(data) { 
      alert('starting ajax callback'); 
      result = "The oracle says: " + data; 
      jQuery('#ccbuy').fadeOut(function() { jQuery('#ccbuy').html(result); jQuery('#ccbuy').fadeIn(); }); 
      alert('ajax callback complete'); 
     } 
     }); 
     alert('ajax call complete'); 
    }); 
}); 
</script> 

나는 일반 웹 페이지에 넣고, 여기 무슨 일이야 :

  1. 내가 ID "carrotlink"로 링크를 클릭합니다.
  2. "start ajax call"이라는 경고 메시지가 나오고 "ajax call complete"가 바로 발생합니다.
  3. 잠시 후 "start ajax callback"및 "ajax callback complete"라는 경고가 표시됩니다.
  4. ID가 "ccbuy"인 div는 새 콘텐츠로 페이드 아웃되고 페이드 인됩니다. 링크를 클릭

내가 드루팔 페이지에서이 코드를 포함는 "시작 아약스 전화"와 "아약스 호출 완료"알림을 제공합니다,하지만 난 콜백 경고를 결코 및 사업부는 변경되지 않습니다.

위의 단순화 된 결과로 디버깅하는 데 몇 시간을 보냈습니다. 분명히 내 jquery 작동, 대상 링크가 의도 한대로 변경되고 의도 된 함수를 클릭 할 때 호출됩니다. 아약스 전화는 그냥 일어나지 않습니다. 왜 이럴 수 있니?

추신 : 나는 drupal이 drupal_add_js()뿐만 아니라 ajax를 통해 텍스트를 대체하는 자체 메서드를 가지고 있다는 것을 알고있다. 그러나 필자는 독립형 웹 사이트의 일부로 사용하려고하는 기능을 이미 작성했으며 모든 것을 다시 구현하는 것보다는 Drupal 페이지에 포함하려고합니다. 그리고 그것이 일하는 것에 너무 가깝습니다!

답변

1

동작 래퍼가 누락되었을 수 있습니다. 행동에 텍스트를 포장 시도하고 행동 코드를 첨부 :

(function ($) { 
    Drupal.behaviors.ajax_example = { 
    attach:function (context) { 

     // If the site name is present set it to the username. 
     if ($('#site-name', context).length) { 
     $.ajax({ 
      url: '/ajax/username', 
      success: function(data) { 

      // Change site name to current user name. 
      $('#site-name a span').html(data + '.com'); 
     } 
     }); 
     } 
    } 
    } 
})(jQuery); 

내가 드루팔에서 아약스 일을 내 회사 블로그 전체 블로그 포스트를 작성 6 & 7 그뿐만 아니라 일부 도움이 될 수 있습니다 http://clikfocus.com/blog/simple-ajax-example-drupal-6-and-7

관련 문제