レコードの並べ替えに使用しているインデックス ページにフォームがあります。フォームに Ajax 機能を追加したかったのですが、何らかの理由で、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>
そして私のAjax JavaScript:
jQuery(document).ready(function($)
{
$(function () {
$('#sort-options input, .pagination a').live("click", function () {
$.get(this.href, null, null, 'script');
return false;
});
});
});
送信ボタンをクリックし、Firebug コンソールで何が起こっているかを確認すると、Ajax の呼び出しに成功し、問題なくページを提供していることは明らかです。ただし、送信された私のパラメーターは完全に無視され、データベースを再クエリするときにそれが考慮されません。':remote => true' を取り出して Ajax ファイルへのリンクを削除すると、params は正常に index アクションに送り返されます - ただ Ajax はありません :(
Ajax は現在、まったく同じページにあるページネーションで機能していることを付け加えておきます。