2012-07-18 2 views
2

색인 페이지에 레코드 정렬을 위해 사용하는 양식이 있습니다. 일부 Ajax 기능을 추가하고 싶지만 어떤 이유로 인해 양식 매개 변수를 전송하지 않습니다. Ajax를 믹스에 추가했습니다.Rails 3 Ajax 양식이 매개 변수를 보내지 않음

<div id="sort-options"> 
    <%= form_tag uploads_path, :method => "get", :remote => true do %>   
      <%= select_tag "sort", options_for_select([["Creation Date", "created_at"], ["File Name", "name"], ["Rating", "rating_average"], ["Downloads", "downloads"]]) %> 
      <%= select_tag "direction", options_for_select([["Descending", "desc"], ["Ascending", "asc"]]) %>     
      <%= submit_tag "Sort" %> 
    <% end %> 
</div> 

그리고 내 아약스 자바 스크립트 : 여기

내 폼의

jQuery(document).ready(function($) 
{ 
    $(function() { 
     $('#sort-options input, .pagination a').live("click", function() { 
      $.get(this.href, null, null, 'script'); 
      return false; 
     }); 
    }); 

}); 

내가 버튼을 제출하고 그것이하는데 성공을 부르고 것이 분명 무슨 일이 일어나고 있는지보고 내 방화범 콘솔에서 볼을 클릭하면 Ajax와 페이지에 아무런 문제가 없다. 그러나 그것은 보내진 매개 변수를 완전히 무시하고 데이터베이스에 다시 쿼리 할 때 고려하지 않습니다. ': remote => true'를 제거하고 Ajax 파일에 대한 링크를 제거하면 매개 변수가 성공적으로 색인 작업으로 되돌아옵니다. (AYAX :

Ajax는 현재 페이지 매김 내가 바로 그 페이지가있다.

답변

3

을 문제는 당신이 레일의 내장에서 AJAX 기능 (:remote => true)을 우선하여 제출 버튼에 다른 클릭 핸들러를 결합하는 것입니다. 또한 당신의 선택 #sort-options input, .pagination a 경기뿐만 아니라 매김 링크,하지만 버튼의 href 속성은 URL로 $.get()에 전달 된 것이므로, $.get(this.href, ...)은 null URL에 AJAX GET 요청을 시도합니다 (이는 빈 문자열 인 것처럼 동작하므로 곱슬 곱슬 함 URL, GET 매개 변수 없음).

+1

클릭 이벤트 대신 별도의 제출 이벤트를 ' \t $ ('# sort-options input ') 제출했습니다. 제출 (function() {.....'이제는 매력처럼 작동합니다. – Noz