если оператор не проверяет значения, как ожидалось - PullRequest
0 голосов
/ 12 ноября 2019

У меня есть оператор if, проверяющий, установлен ли флажок php. По какой-то причине он останавливается только на операторе if и не запускает else.

Если я переключу правила оператора if с оператором [initial] else, я все еще получаю толькооператор if.

$(document).ready(function(){

    // #Loader is inside of .LoaderContainer
    $('#Loader').on('inview', function(event, isInView) { 

        if (isInView) {

            // Pagination
            var nextPage = parseInt($('#pageno').val())+1;

            //Filters
            var minimum_wt = $('#hidden_minimum_wt').val();
            var maximum_wt = $('#hidden_maximum_wt').val();
            var shape = get_filter('shape'); // A checkbox
            var color = get_filter('color'); // A checkbox
            var enhancement = get_filter('enhancement'); // A checkbox
            var matching = get_filter('matching'); // A checkbox

            $.ajax({

                type: 'POST',
                url: 'vendors/php/NextPage.php',
                data: {
                    pageno: nextPage,
                    minimum_wt: minimum_wt,
                    maximum_wt: maximum_wt,
                    shape: shape,
                    color: color,
                    enhancement: enhancement,
                    matching: matching
                },
                success: function(data){

                    if(data != '') { // if any of values inside data are NOT empty

                        $('#StoneContainer').append(data);
                        $('.LoaderContainer').show();   //Show infinite scroll
                        $('#pageno').val(nextPage);


                    } else { // if any of the values in data are empty

                        $('#StoneContainer').append(data);
                        $('.LoaderContainer').hide();   //Hide infinite scroll

                    }

                }

            });

        }

    });

});

Когда нет значения ни одной из переменных внутри data, я хочу, чтобы оно было hide .LoaderContainer, в противном случае я хочу, чтобы оно было show.LoaderContainer

1 Ответ

0 голосов
/ 12 ноября 2019

Тест if должен проводиться вокруг вызова на $.ajax(), поэтому вы отправляете запрос AJAX, только если установлены какие-либо флажки.

if (shape.length && color.length && enhancement.length && matching.length) {
  $.ajax({
    type: 'POST',
    url: 'vendors/php/NextPage.php',
    data: {
      pageno: nextPage,
      minimum_wt: minimum_wt,
      maximum_wt: maximum_wt,
      shape: shape,
      color: color,
      enhancement: enhancement,
      matching: matching
    },
    success: function(data) {

      if (data != '') { // if any of values inside data are NOT empty
        $('#StoneContainer').append(data);
        $('.LoaderContainer').show(); //Show infinite scroll
        $('#pageno').val(nextPage);
      } else { // if any of the values in data are empty
        $('#StoneContainer').append(data);
        $('.LoaderContainer').hide(); //Hide infinite scroll
      }
    }
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...