2013-05-21 5 views
0

У меня есть страница, на которой будут отображаться носители, которые уже были загружены на мой сайт. Там будет 3 флажка, по одному для каждого типа носителей, флажками являются Images, catalog_images и видео. Как только один из них проверен, я хочу, чтобы страница перезагрузила одну и ту же страницу, но добавьте флажок к параметрам, которые будут проверяться, поэтому он отобразит выбранные носители.Изменен Параметр с рельсами после проверки флажка

Я пытался сделать это с javascript безуспешно. Я надеялся, что рельсы будут иметь встроенную функцию или что-то, что поможет мне. Я продолжу заниматься исследованиями и обновить этот вопрос, если кто-то не избивает меня.

Редактировать: У меня был запрос на код, который я не хотел включать только потому, что он уже в производстве, и у него много мусора, но я попытаюсь его очистить и дать и понять, делает

<div class="panel"> 
    <h3>Create from Media</h3> 
    <div> 
     Image: <%= check_box_tag 'Catalog Image', :catalog_images %> | Images: <%= check_box_tag 'Images', :images %> | Video: <%= check_box_tag 'Videos', :videos %> 
     <br /> 
     <% if @filenames %> 
      <table class='list'> 
        <th>Lots</th> 
        <th>Sub Lot Creation</th> 
      <% if :videos %> 
       <% @videos.reject(&:blank?).uniq.each do |filename| %> 
        <% basename = File.basename(filename, '.*') %> 

        <tr> 
         <td><%= basename %></td> 
         <td><%= text_field_tag :low_range %> <%= text_field_tag :high_range %></td> 
        </tr> 

      <% end %> 
      <% end %> 
    </table> 
     <% end %> 
     <%= link_to "Create by Image", mass_create_from_media_admin_event_lots_path(@event, :images => true) %> 
    </div> 
</div> 

Так, когда каждый флажок помечен Я хочу, чтобы перезагрузить и есть: видео,: catalog_images,: изображения верно, если проверено. Я знаю, что проверка не завершена для каждого носителя, но я также дома, поэтому я попытался быстро создать представление о том, что я хочу.

+1

plase post код – Lichtamberg

ответ

1

Если я правильно понял, вы хотите перезагрузить страницу и добавить что-то вроде этого? videos = проверено на ваш url?

Если это так, вы можете сделать что-то вроде этого (я предполагаю, что вы используете JQuery, но вы не должны иметь никаких проблем переписывания это кофе сценарий):

$('input:checkbox').change(function() { 
    var currentUrl = window.location.href; 
    // your media type 
    var mediaType = $(this).val(); 
    // set to true if checkbox has been checked, false otherwise 
    var isChecked = ($(this).attr('checked')) == 'checked' ? true : false; 

    if (isChecked == true) { 
     // in case you already have some other params in your url 
     if (currentUrl.indexOf('?') !== -1){ 
      currentUrl += '&' + mediaType ' + '=true'; 
     } else{ 
      currentUrl += '?' + mediaType ' + '=true'; 
     } 
    } 

    window.location.href = currentUrl; 
}); 

Я не запускать код, и вам нужно будет решить некоторые другие варианты использования (например, что должно произойти, если пользователь снял флажок?)

В любом случае это решение является довольно грязным. Я предлагаю вам использовать либо обычную форму с кнопкой отправки, либо асинхронный вызов, и изменить только те части страницы, которые вам нужны.

+0

да это сработает, но я думаю, что я собираюсь пойти с вашим советом по использованию формы, чтобы облегчить процесс отслеживания флажков. Большое спасибо, иногда мне просто нужен другой ввод программистов. – user1977840

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