Shlop
@Shlop
Full Stack Developer (PHP/Laravel/JavaScript)

Как определить что товаров больше нет для того что бы показать ещё?

Здравствуйте, подскажите пожалуйста, работаю я над одним сайтом и здесь у меня стоит такая задача, подгружать новые товары с помощью кнопки "Показать ещё" подгружается по нажатию на эту кнопку по 8 товаров, собственно это я сделал, но проблема теперь в том, как определить что товаров в разделе "плитка" к примеру только 2 и кнопку "показать ещё" нужно спрятать тогда, потому что мы даже ещё не набрали 8-ми товаров что бы показать ещё 8-мь.
Здесь просто 2 ajax запроса у меня, первый это когда мы просто выбираем какую либо категорию вот ajax запрос и скриншот, категории красным выделил:
5b2e62d17d063655339572.png
$.ajax({
			type: "POST",
			dataType: "html",
			url: "/assets/template/php/action.php",
			data: {"Id": IdElem},
			success: function(msg) {
				if(IdElem == 6 || IdElem == 11 || IdElem == 12 || IdElem == 13) {
					if(msg == "-1") {
						$(".contentBlock").empty();
						$(".contentBlock").append("<div class='col-md-12'><h3>К сожалению ничего не найдено<h3></div>");
						$(".fluiddBlock").css("display","none");
					}
					else {
						if($(".fluiddBlock").is(":hidden")) {
							$(".fluiddBlock").fadeIn(500);
						}
						if($("#filterBlock").is(":hidden")) {
							$("#filterBlock").removeAttr("style");
						}
						var heigthBlock = $(".contentBlock").outerHeight(true);
						$(".contentBlock").css("height",heigthBlock);
						$(".contentBlock").fadeOut(400,function() {
							$(".contentBlock").empty();
							$(".contentBlock").append(msg);
							$(".contentBlock").fadeIn(400,function() {
							heigthBlock = 0;
							$(".contentBlock").removeAttr("style");
							});
						});
					}
				}
				else {
					if(msg == "-1") {
						$(".contentBlock").empty();
						$(".contentBlock").append("<div class='col-md-12'><h3>К сожалению ничего не найдено<h3></div>");
						$(".fluiddBlock").css("display","none");
					}
					else {
						if($(".fluiddBlock").is(":hidden")) {
							$(".fluiddBlock").fadeIn(500);
						}
						$(".contentBlock").css("height",heigthBlock);
						$("#filterBlock, .contentBlock").fadeOut(400,function() {
							$(".contentBlock").empty();
							$(".contentBlock").append(msg);
							$(".contentBlock").fadeIn(400,function() {
							$(".contentBlock").removeAttr("style");
							});
						});
					}
				}
			}
		});

Это вот action.php:
<?php 
/* include MODX_API BEGIN */
define('MODX_API_MODE', true);
require_once($_SERVER['DOCUMENT_ROOT'].'/index.php');
$modx=new modX();
$modx->initialize('web');
/* include MODX_API END */
$param = array(
	"tpl" => "tpl.msProducts.row2",
	"parents" => $_POST["Id"],
	"depth" => "0",
	"includeThumbs" => "medium",
	"sortby" => "pagetitle",
	"sortdir" => "ASC",
	"limit" => "8"
);
$output = $modx->runSnippet('msProducts',$param);
$modx->getParser()->processElementTags('', $output, false, false, '[[', ']]', array(), 10);
$modx->getParser()->processElementTags('', $output, true, true, '[[', ']]', array(), 10);
if(empty($output)) {
	echo "-1";
}
else {
	echo $output;
}


А второй ajax запрос это как раз таки по нажатию на кнопку "показать ещё"
5b2e649d43441921952615.png
$("#OpenNewItems").on("click",function() {
		var IdElem = $(".contentBlock")["0"].attributes.id.value;
		var currentObject = $(".ElemList");
		var currentLength = currentObject.length;
		$.ajax({
			type: "POST",
			dataType: "html",
			url: "/assets/template/php/actionNewItems.php",
			data: {"Id": IdElem, "currentElem": currentLength},
			success: function(msg) {
				if(msg == "-1") {
					$(".fluiddBlock").fadeOut(400);
				}
				else {
					$(".contentBlock").append(msg);
				}
			}
		});
		return false;
	});

Это вот actionNewItems.php:
<?php 
/* include MODX_API BEGIN */
define('MODX_API_MODE', true);
require_once($_SERVER['DOCUMENT_ROOT'].'/index.php');
$modx=new modX();
$modx->initialize('web');
/* include MODX_API END */
$param = array(
	"tpl" => "tpl.msProducts.row2",
	"limit" => "8",
	"offset" => $_POST["currentElem"],
	"parents" => $_POST["Id"],
	"depth" => "0",
	"includeThumbs" => "medium",
	"sortby" => "pagetitle",
	"sortdir" => "ASC",
);
$output = $modx->runSnippet('msProducts',$param);
$modx->getParser()->processElementTags('', $output, false, false, '[[', ']]', array(), 10);
$modx->getParser()->processElementTags('', $output, true, true, '[[', ']]', array(), 10);
if(empty($output)) {
	echo "-1";
}
else {
	echo $output;
}
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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