В PHP У меня есть страница, которая проверяет, есть ли более 0 строк, а если нет, то пользователь получает сообщение с надписью echo 'NO MATCHES';
, а затем проверяет, не пользователь $_POST
редактировал какие-либо фильтры показать все данные, которые соответствуют указанным отфильтрованным параметрам, а если нет, показать все итерации. Вот мой псевдокод:
PHP. php
$rowcount = mysqli_num_rows($result); //Count iterations
if($rowcount > 0){
if(isset($_POST["filter1"]) && isset($_POST["filter2"]) && isset($_POST["filter3"])) {
//If there are filters selected
while($row = mysqli_fetch_array($result)) {
include('Listing.php');
}
} else {
//If no filters have been selected
while($row = mysqli_fetch_array($result)) {
include('Listing.php');
}
}
} else {
echo '<div class="NoMatch">NO MATCHES</div>';
}
Тогда в моем jQuery у меня есть AJAX вызов, когда изображение #Loader
- это inView (сторонняя функция), он захватывает мои фильтры как данные, направляет их на страницу PHP (выше) и добавляет данные в контейнер. Вот этот псевдокод:
jQuery. js
$('#Loader').on('inview', function(event, isInView) {
if (isInView) {
// Filters
var filter1 = get_filter('filter1');
var filter2 = get_filter('filter2');
var filter3 = get_filter('filter3');
$.ajax({
url: 'PHP.php',
type: 'POST',
data: {
filter1: filter1,
filter2: filter3,
filter3: filter3
},
success:
function(data) {
if(data != '') {
$('#StoneContainer').append(data);
$('#pageno').val(nextPage);
} else {
$('#StoneContainer').html(data);
$('#Loader').hide(); // Hide infinite scroll
}
}
});
}
});
В выражении if
моего jQuery. AJAX i ' я пытаюсь скрыть изображение (#Loader
), когда data
пусто, но никогда не пусто из-за моих PHP echo 'NO MATCHES';
. Как рассчитать последний индекс PHP, в то время как l oop с jQuery, чтобы скрыть изображение, когда больше нет PHP итераций?
ATTEMPTS :
if(data.lastIndexOf('class="Iteration"') == 0) {
$('#Container').append(data);
$('#pageno').val(nextPage);
} else {
$('#Container').html(data);
$('#Loader').hide(); // Hide infinite scroll
}
Не работает, потому что он найдет последний класс этой страницы, но не весь массив, а if(data.indexOf('class="Iteration"') > 0) {
не работает, потому что он скрывается только когда PHP $rowcount < 0
, но не, когда массив закончен.
$('#Container').append(data);
$('#pageno').val(nextPage);
$('.Iteration').each(function(element) {
if (element + 1 === count) {
$('#Loader').hide(); // Hide infinite scroll
}
});
Я не могу понять, почему не работает либо.