0

私は現在、ラジオボタンの選択に基づいてユーザーのビューでさまざまな画像をレンダリングしようとして立ち往生しています。選択をハードコーディングすれば画像を操作できますが、ユーザーの選択をJQueryからRailsに渡す方法が見つかりません。

まず、ラジオボタンを使用した私のビューは次のようになります。

<!-- VIEW CODE -->
<% [ 'credit_32.png', 'credit_64.png' ].each do |image| %>
          <%= radio_button_tag 'image', image, @image == image, :class => 'image' %><%= image_tag(image)%>
    <% end %>

次に、選択に基づいた画像のいずれかで更新しようとしているdivがあり、変更する関数がjavascriptファイルにあり、クリックイベントでこれをリッスンします。

// Javascript Asset File
    $(function() {
        $("input.image").live("click", function() {
            $image = ($(this).val());
            $.getScript( this.href );
        });
    });

これにより、ユーザーの選択が$ image変数に設定され、index.js.erbコードが呼び出され、パーシャルが再レンダリングされます。

// Index.js.erb for responding to
    $("div#button").html("<%= escape_javascript(render(@button)) %>");

私が抱えている問題は、以前の変数をパーシャルにするにはどうすればよいですか?

<!-- Partial Code -->
    <% if @button_image = $image %>
        <%= link_to image_tag(@button_image), button_path(button, :only_path => false), :target => '_blank' %>
    <% else %>
        <%= link_to image_tag('credit_32.png'), button_path(button, :only_path => false), :target => '_blank' %>
    <% end %>

この@button_imageインスタンス変数をJQuery$imageオブジェクトに設定できれば、それが可能かどうかはわかりませんが、問題ありませんか?JQueryオブジェクトをセッションに保存して、ここで使用できますか?ありがとうございました

4

1 に答える 1

1

メソッドは$.getScript()メソッドの省略形にすぎません$.ajax()(リンク:http ://api.jquery.com/jQuery.getScript/ )

$.ajax()属性を指定して通常の方法を使用できdataます。例えば:

$.ajax({  
  url: this.href,  
  dataType: "script",  
  data: { image: $(this).val() }  
});

paramsこれで、Railsでハッシュを使用してアクセスできるようになりました。

詳細: http: //api.jquery.com/jQuery.ajax/

于 2012-06-12T20:57:17.010 に答える