0

Rails 3でAjax呼び出しを実装しようとするのはこれが初めてですが、.load関数を使用しています(これがAjaxであることを願っています。そうでない場合は、これを誤って理解しています)

だから私は別のページにレンダリングするgetリクエストを介して結果を返す検索フォームを持っています、私は結果を検索フォームと同じページに表示したいと思います

<%= form_tag({:controller => 'search', :action => 'search'}, {:method => 'get'})  do |select| %>
<%= label_tag :search, "Enter Keywords Here" %>
<%= text_field_tag :search, params[:search] %>
 (I have shortened the form)
<%= submit_tag "Search", :class => "searchbutton" %>
<% end %>

Jquery/Ajax呼び出し

$(document).ready(function() {
$('.searchbutton').click(function() {
$('#searchres').load('shared/searchresults');

});

});

意見

<h3>Search Recipes here</h3>
  <%= render 'shared/searchrecipes' %>
    <div id ="searchres">
</div>

私は何が間違っているのですか?

4

1 に答える 1

1

これは AJAX 呼び出しであるため、次のような html パラメータ ハッシュを取得して、remote: trueを追加する必要があります。method: :get

{:method => 'get', :remote => true}

Rails がリモート呼び出しを見つけると、デフォルトは自動的に防止されます。それ以外の場合は、次のように JavaScript を変更する必要があります。

$(document).ready(function() {
  $('.searchbutton').click(function(evt) {
    $('#searchres').load('shared/searchresults');
    evt.preventDefault();
  });
});
于 2012-11-12T20:36:08.393 に答える