2012-06-12 2 views
0

В настоящее время я пытаюсь отобразить различные изображения в представлении пользователя на основе выбора переключателя. Я могу манипулировать изображением, если у меня есть жесткий выбор кода, но я не могу найти, как передать выбор пользователя из JQuery в Rails.Изменение изображения с помощью кнопок радио и JQuery

Первый мой взгляд с кнопками радио, как так:

<!-- 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); 
     }); 
    }); 

Это устанавливает выбор пользователя в переменную $ изображения и вызывает 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 $ объекта изображения, я бы хорошо, хотя я не знаю, возможно ли это? Могу ли я сохранить объект JQuery в сеансе и использовать его здесь? Спасибо

ответ

1

метод $.getScript() только обобщающим для $.ajax() метода (ссылка: http://api.jquery.com/jQuery.getScript/)

вы могли бы просто использовать нормальный $.ajax() метод с атрибутом data. например:

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

теперь рельсам вы можете получить доступ к нему с params хэш.

Дополнительная информация: http://api.jquery.com/jQuery.ajax/

Смежные вопросы