Встроенная нумерация записей с помощью PHP JQUERY AJAX JSON - PullRequest
0 голосов
/ 18 октября 2011

Я пытаюсь найти хороший метод для последовательной загрузки записей с использованием нумерации страниц.

При загрузке страница запросит БД, получит последние 5 записей и покажет ссылку «показать больше»в конце этого.При щелчке по этой ссылке она должна опубликовать снова и получить следующие 5 записей, поэтому в этом смысле записи будут загружаться только по очереди.

Я думаю, это как-то похоже на нумерацию страниц, но без счетчика страниц, простоследующий'.Текущий код, который у нас есть, это встроенный javascript, который jquery публикует в php-скрипте и возвращает массив, который затем добавляется.Хорошо, что html - это не

Должен ли мой первоначальный запрос захватить количество всех записей в БД для разбивки на страницы?

Какая-нибудь конкретная ссылка, которая поможет мне достичь этого?1010 * Приведенный ниже код имеет одну проблему: при нажатии «Showmore» загружается только еще одна запись вместо 3 (num var)

var num = 3;
                var i =0,j=0;
                var total;
                var sm;

                function fun(sm){                        

                      $.post('select1.php?id=2',{},function(count){
                        total = count;
                        });

                      $.post('select1.php?id=1',{num:num},function(data)
                        {
                        if(num == total)
                        {
                            $('#show').hide();
                            $('#show1').html('<p>No more images found!</p>');
                        } 

                       var arr = data.split('/');

                    //alert(arr.length);

                    if(sm){j=sm};

                    for(i=j;i<(arr.length-1);i++)
                    {
                    //alert(arr[i]);
                       var p = arr[i].split('.');
                    //alert(p[1]);
                       $('#imggal').append('<a href="page3.php?file='+arr[i]+'"><img src="upload/small'+arr[i]+'" title ='+arr[i+1]+' border="0"></img></a><br><span style="display:block;font-size:12px;color:blue;letter-spacing:-1px">'+arr[i+2]+'<br>'+arr[i+1]+'</span><br></br').fadeIn('slow');
                       i=i+2;
                    }
                    });
                }

                fun();

                $(document).ready(function(){

                    $('#showmore').click(function(e){
                       //e.preventDefault();


                        j=num*3;

                        num++;
                        //alert(num);
                        //$('#imggal').html('');
                        fun(j);

                    });
                });

1 Ответ

1 голос
/ 18 октября 2011

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

  • У вас есть порядок выбора запросов по чему-то, чтобы сохранить ваш результат последовательным между вызовами
  • Вы не хотите удалять предыдущие элементы при загрузкеболее того, вы в буквальном смысле хотите продолжать отображать новые элементы, пока у вас не закончатся элементы в базе данных для добавления

С этими допущениями простой способ определить, есть ли у вас элементы для отображения, состоит в том, чтобы отслеживатьсмещения вместе с вашим номером за запрос.В качестве примера ...

Если вы хотите отображать 5 элементов в запросах «Показать больше», вы бы

  • Начали смещение в 0
  • Начните с 5
  • Запрашивать num + 1, но отображать только num
  • Если набор результатов> num, вы можете показать больше, поскольку вы точно знаете, что больше существует
  • Если набор результатов равен<= num, вы не можете больше отображать, у вас закончились данные </li>
  • Если вы «покажите больше», увеличьте смещение на num

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

Опять же, вам нужно будет ограничить и упорядочить ваш запрос на выборку в базе данных, чтобы эта работа работала.IE для mysql

select filename, thumbnail, id from image_table order by id limit OFFSET, NUM

OFFSET и NUM от вашего .post

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...