Нумерация страниц с помощью Ajax - PullRequest
0 голосов
/ 20 октября 2011

Я создал приложение (с PHP, Codeigniter и jQuery), которое использует ajax для разбивки на страницы, подобно тому, как это сделал Твиттер в тот день (нажав кнопку, чтобы загрузить больше данных).

Все довольно хорошо, но есть несколько проблем.

Когда больше не осталось сообщений для загрузки, я хочу, чтобы кнопка «load-more» была удалена. Однако сейчас я могу только проверить, остались ли какие-либо сообщения, когда я нажимаю кнопку, и скрипт возвращает ноль.

Вот как сейчас: допустим, в базе данных 14 записей. 5 загружается по умолчанию.

1 - нажмите «загрузить», загружено еще 5 сообщений. 4 остаются.

2 - нажмите load-more, остальные 4 сообщения загружены.

3 - нажмите кнопку «загрузить», больше не осталось сообщений, кнопка исчезнет

Но я хочу избавиться от шага 3, приложение должно «знать» о том, что на шаге 2 не осталось постов, которые нужно отображать.

Я уверен, что есть простой способ, о котором я еще не подумал ...

Ответы [ 5 ]

2 голосов
/ 20 октября 2011

простой. выберите 6 сообщений вместо 5 и отобразите только 5. Если ни одно из сообщений менее 6 не отображает кнопку «больше».

if ($num_rows < 6){
  //remove more button
} 
0 голосов
/ 20 октября 2011

Возвращает объект JSON с одним свойством, которое является массивом (записями), и одним свойством, которое является логическим "EOF" или таким, чтобы указать, когда больше нет записей для загрузки..EOF) // Скрыть кнопку ..

Ооо и добавить идентификатор последнего поста из текущей нумерации страниц в AjaxRequest.Таким образом, сервер выдает 25 сообщений из последнего, который он вам дал.Тогда вы не получите смещения, если во время нумерации страниц будет добавлен новый пост.

0 голосов
/ 20 октября 2011

Пожалуйста, пожалуйста, пожалуйста - не делайте нумерацию страниц в Ajax!

Боль в $$ заключается в том, чтобы перемещаться по таким страницам естественным образом, невозможно использовать кнопку «Назад» или кнопку «перезагрузить» или установить значок илиничего!

не говоря уже о клиентах, которые вообще не поддерживают js

0 голосов
/ 20 октября 2011

вы можете попробовать что-то вроде этого

if ($num_rows < 5){
/*what ever you want removed */
} 

в конце цикла

0 голосов
/ 20 октября 2011

Вы можете установить глобальную переменную Javascript, содержащую количество общих сообщений, примерно так:

var total = <?php echo $total ?>;

И после вызова сравните сумму с итогом:

if($('.post').length == total) // .post being database results
    $('#loadmore').hide();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...