@dmitriyuvin
FullStack developer ( Laravel & Vue )

Как сделать кнопку load more?

<?
			foreach($this->Products['items'] as $Product){?>
				<?include PATH_SNIPPETS.'product-item.php';
				
				?>
			<?}?>


Этот код выводит все товары, как мне вывести например 3 товара? - первый вопрос
Как сделать кнопку loadmore, чтобы загрузилось например 3 товара, а потом при клике на кнопку загрузились все остальные?

Любой код скину, какой надо
  • Вопрос задан
  • 494 просмотра
Решения вопроса 2
@RookDeveloper
У вас на фото php код, во-первых, нужно понять откуда берется $this->Products['items'] и сделать ограничение выборки.
Например, если $this->Products['items'] выдает 1000 товаров, то нужно сделать кодом ограничение, например, на 10 товаров и возможностью пропуска n элементов в начале. Соответственно, потом, сверстать кнопку загрузить еще и при нажатии на нее с помощью JS отправлять запрос на сервер с отступом. Например, 1-я страница - отступ (1-1) * 10 . Вторая (2-1) * 10. То есть когда будет вторая страница, php пропустит первые 10 элементов и возьмет как бы 10 после первых десяти... вообщем нужна кнопка, на нее нажимаете - отправляется запрос с номером страницы. В зависимости от номера страницы будет разный отступ и код выдает разные данные. Вы этот код через JS вставляете вместо старого. Соответственно, в вашем случае будет 3 товара выводиться и формула вывода изменится ( NUMBER_PAGE - 1) * COUNT.
Ответ написан
Комментировать
rusellsystems
@rusellsystems
CEO
на примере yahoo auction, я в 2015 году делал через куки и хранил кол-во выведенных элементов, подключив фантазию можно реализовать подобным или похожим способом под любую другую задачу, например с данными из локальной базой, xml и т.п.,
вот берем из текущее кол-во элементов
$currentCountOfItems=htmlspecialchars($_COOKIE["currentCountOfItems"]);

и номер страницы
$pageNumber=htmlspecialchars($_COOKIE["page"]);


к текущей странице прибавляем +1
$nextPageNumber=$pageNumber+1;

и пишем номер следующей страницы в куки
setcookie( "page", $nextPageNumber, time()+(60*60*24*30) );


потом выполняем запрос на аукцион yahoo и берем элементы с необходимой страницы
$params['page']=$pageNumber;

выполняем запрос на yahoo api
$params['query']=$searchString;
$api = 'auctions.yahooapis.jp/AuctionWebService/V2/search';

и выводим(дополняем текущую страницу с товарами новыми результатами из нового запроса)
foreach($s->Result->Item as $item){
$itemsHTML=$itemsHTML.getItemDataFromArray($userID,$item,$viewType);
$countOfItems++;
}

и возвращаем результат в ajax запрос, меняем в div полученый результат и на странице прикрепляется и выводится дополнительный ассортимент
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mad_maximus
@mad_maximus
Гуглите "аякс пагинация php, js".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы