2014-01-28 5 views
2

У меня есть приложение с функцией поиска. На индексной странице отображаются все элементы в базе данных. Также, когда я ищу свои продукты, он работает с AJAX. Как добавить функциональность AJAX в мою разбивку на страницы? Я использую Каминари для разбивки на страницы.Перезагрузка страницы AJAX

  $(function() { 

       $("#name").autocomplete({ 
        source: "shirts/autocomplete", 
        autoFocus: false, 
        minLength: 1, 
        select: function(event,ui){ 
       document.getElementById("name").value = ui.item.value; 

        $.ajax({ 
       url:"shirts/show?name="+ui.item.value, 
       type:"GET", 
      });  
      } 
      }); 
      }); 
+0

Это зависит от вашего контроллера. Если ответ контроллера - это вся страница, он перезагрузится, несмотря ни на что. Просто ответьте JSON на данные, возможно, –

ответ

0

Просто добавьте к вашей ссылке постраничной remote: true или обрабатывать его с Javascript, а затем в контроллере:

if request.xhr? 
    render json: @products # ajax request 
else 
    render layout: true # standard layout 
end 

Вы должны поймать 'ajax:success' в вашем JavaScript и добавить ПОЛУЧАЛ продукты.

+0

Я добавил «remote: true» в мою ссылку для разбивки на страницы, но он все еще не работает.

<%= paginate @first, :remote => true %>
. Затем в моем файле .js.erb я добавил «$ (« # container »). Html (« <% = escape_javascript (сделать «рубашка/первая»)%> »); $ ("# paginator"). Html ('<% = escape_javascript (paginate (@first,: remote => true) .to_s)%>'); '. Но затем, когда я нажимаю дальше, он говорит о внутренней ошибке сервера. – Raghuveer

+0

Проверьте, правильно ли вы указали правильную разбивку на каминари [здесь] (http://stackoverflow.com/questions/9016943/multiple-pagination-with-kaminari-via-ajax). Если проблема не существует, вставьте то, что говорит ваш журнал сервера (что именно такое 500). –

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