0

特定の項目がドロップダウン リストから選択されたときに新しいパーシャルをレンダリングする AJAX 呼び出しを作成しようとしています。私は一日中運がない解決策を探していました:(

私がそれを機能させる唯一の方法は、AJAXを使用するのではなく、2番目のパーシャルを含む非表示のdivを作成し、ドロップダウンボックスから適切なオプションが選択されたときにそれを表示して他のdivを非表示にすることでした。はい、これは機能しましたが、よりクリーンなソリューションを探していました。

私は直接的な答えを探しているわけではありませんが、誰かが私を正しい方向に向けることができるリソースを持っているなら、それは大歓迎です:)

4

2 に答える 2

0

select要素からのonchangeイベントがトリガーされているときに、リモートAJAX呼び出しを実行する必要があります。したがって、select要素を含むページには、次のようなものがあります(スクリプト内)。

$('#select_id').live('change',function(){
  $.ajax({
    url: 'url_bound_to_partial_renderer'
  });
}

そして、あなたに応答するコントローラーのアクションについては、次のurl_to_fetch_resultように書く必要があります。

# controller
# action bound to 'url_bound_to_partial_renderer' by routes.rb
def partial_renderer
   ...
end

#view (partial) _partial_renderer.js.erb
$('jquery_selector_path_to_container_element_of_your_partial').html("<%= escape_javascript render(:partial => 'my_partial') %>");

#view (partial) to be rendered inside container element: _my_partial.html.erb
<p>Here goes the content of the partial you want to be rendered on the container!</p>

これがあなたの質問に答えることを願っています。

于 2012-05-14T09:12:30.393 に答える