2016-05-31 4 views
-1

Я создаю поисковую систему предприятия. У меня есть все мои записи для поиска на одной странице. Я хочу передать разбивку на страницы в результатах поиска с помощью Html и javascript. Я просмотрел много вопросов с разбивкой по страницам из stackoverflow, но я не понимаю никакой логики. Может ли кто-нибудь предложить мне какой-то метод или код для разбивки на страницы? Заранее спасибоРазбиение страницы в поисковой системе с помощью Javascript

+1

Вы должны предоставить более подробную информацию. Каковы ваши требования относительно разбивки на страницы? Должен ли он использовать некоторые технологии, например, jquery, угловые, реагировать? Или он должен быть создан с использованием обычного JavaScript и DOM? Как вы планируете его использовать? – sielakos

+0

Зависит от того, что вы хотите сделать. Если вы говорите о разбиении на страницы данных, я бы рекомендовал вам посмотреть JQuery DataTables. Кроме этого, вам, вероятно, придется реализовать это как часть вашего приложения. – ManoDestra

+0

привет .. Я создал поисковую систему с solr и i m, вызывая все записи из solr core с Solrj. Я хочу использовать Javascript. – Yashu

ответ

1

Там 2 способа я обычно иду с нумерацией страниц:

  • стороны сервера: Где вы отрабатываете количество записей, которые соответствовали по критериям поиска, и в зависимости от того, как многие записи на страницу отправляют соответствующие данные (например, 10 000 записей в базе данных, 15 на страницу, затем отправляют обратно 15 записей)
  • Сторона клиента: Отправлять обратно все записи, соответствующие критериям поиска, и решать, что показывать и скрыть на стороне клиента

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

Я не собираюсь давать вам какой-либо код, потому что я даже не знаю, с какой структурой JS вы идете, и есть много, поэтому просто выберите один (пользовательский интерфейс AngularJS + Bootstrap + Bootstrap UI). Вместо этого я расскажу вам, как я обычно об этом говорю.

Когда пользователь что-то ищет, запросите базу данных и верните общее количество записей. Это означает, что здесь интересуется только тотальное. Предполагая, что вы используете MySQL, либо делайте SELECT COUNT(*) FROM foo WHERE bar= 'value'; ИЛИ используя SQL_CALC_FOUND_ROWS.

Затем, исходя из того, сколько элементов вы хотите отобразить на странице, верните соответствующий номер, добавив limit и offset, например.

SELECT columns FROM table LIMIT 10 OFFSET 5.

Когда возвращают данные, которые я обычно возвращаю что-то вроде этого

{ 
    total: 234, 
    data: [ 
     data1, 
     data2, 
     ... 
    ] 
} 

Использования total я могу тренировки, сколько страниц для отображения, и я могу затем цикл через data и показать его на этой странице.

Если пользователь нажимает, например, на стр. 5, то если элемент на странице равен 15, то я хочу видеть, что запись выполняется с 75 по 90 (при условии, что начиная с записи 1).