2009-05-25 4 views
1

RJS 템플릿과 함께 Rails 및 jquery를 사용하여 다양한 AJAX 요청을 수행하고 있습니다.jquery get 요청에서 레일스 RJS 템플릿 실행

$('#tagging_flickr_photos').submitWithAjax(); 
$('#tag_submit').click(function() { 
    $('#flickr-photos-status').show(); 

}); 

이는 RJS 템플릿 등을 전달 후 일부 처리를 수행하고 양식 조치를 호출 : 나는 다음과 같이 내 application.js에서 폼에 핸들러를 제출 첨부 내 아약스 물건의 대부분

다음과 같습니다 :

$("#flickr-photos-status").hide(); 
$("#flickr-photos").fadeIn(); 
$("#flickr-photos").html("<%= escape_javascript(render(:partial => 'flickr_photos_for_tagging_content')) %>"); 

이것은 효과가 있습니다.

지금도 동일한 작업을 수행하려고하지만 드롭 다운에서 다른 값을 선택하고 양식을 제출하지 않는 것에 기반합니다. 여기 드롭 다운에 핸들러를 연결하는 내 자바 스크립트의 다음 RJS 템플릿에 전달 후

$('#film_film_name_id').change(function() { 
    $.get('/admin_film/make_tags?film_name_id=' + $("#film_film_name_id").val() + '&film_speed_id=' + $("#film_film_speed_id").val()); 
}); 

내 컨트롤러 메소드가하는 몇 가지 처리 (make_tags.js.erb) :

$("#film_tags").val(<%[email protected]%>) 

그러나, 템플릿 실행되지 않습니다. 내 로그에서 내 메서드를 호출하고 템플릿을 렌더링하는 항목을 볼 수 있지만 템플릿에 무엇을 넣든 아무 일도 일어나지 않는 것 같습니다. 거기에 자바 스크립트 경고를했는데 발사되지 않습니다.

문제는 내 Javascript 처리기를 연결하는 것으로 가정하지만 내가 누락 된 항목을 파악할 수 없습니다.

미리 도움을 청하십시오.

답변

5

jQuery에게 자바 스크립트를 예상하고 실행해야한다고 말해야한다고 생각합니다. 다음을 시도하고 그것이 작동하는지 확인 : 내가 코드를 테스트하지대로 작동하지 않는 경우

$('#film_film_name_id').change(function() { 
    var url = '/admin_film/make_tags?film_name_id=' + $("#film_film_name_id").val() + '&film_speed_id=' + $("#film_film_speed_id").val() 
    $.ajax({ 
    type: 'GET', 
    dataType: 'script', 
    url: url 
    }); 
}); 

jQuery.ajax()에서의 jQuery 문서를 확인하시기 바랍니다.

+0

그 덕분에 완벽하게 감사합니다! –

+0

감사합니다. 나는 몇 시간 동안 이걸로 싸우고있어. – Chelsea

1

HI,

내가 프로토 타입 라이브러리를 통해 직접 호출하는 관찰자를 사용하고 내 RJS는 다른 형태의 요소를 Referesh는 내 행동에서 렌더링 그런

 <td><div id="outconditionnals_container"> 
       <% if [email protected]? then %> 
         <%= collection_select(:OUTconditionnal, :id, @milestone.howto.conditionnals, :id, :name, {:prompt => true}, {"index" => @outconditionnalID.to_s}) %> 
         <%= observe_field("OUTconditionnal_"[email protected]_s+"_id", 
           :url => { :action => :AJAX_selection_change }, 
           :with => "'id='+value+'&dir=out&type=conditionnal&milestoneID="[email protected]_s+"'", 
           :on => "changed")%>       
       <% end %> 
      </div> 
     </td> 

을 (jQuery를하지 않음).

희망이 도움이됩니다.

+0

감사합니다. 다른 답변은 저에게 도움이되었지만 유용하게 보일 기회가 생기면 관찰자 물건을 읽도록하겠습니다. –

0

또는 $ .get 함께 사용해도됩니다.

$('#film_film_name_id').change(function() { 
    $.get(
     '/admin_film/make_tags', // or something like '<%= make_tags_admin_film_path %>' 
     { 
     film_name_id: $("#film_film_name_id").val(), 
     film_speed_id: $("#film_film_speed_id").val() 
     }, 
     null, // you may define an additional callback here, if that makes sense 
     "script" 
    ); 
}); 
0

JQuery와 방법 getScript 위의 권장 ujh 일을위한 좋은 속기 :
는 여기에 머리와 당신의 예입니다.