I load content when scrolling, everything works in Denver and not on the server, help me find the error. I do not understand what the problem is.

All files are in utf-8, in .htaccess utf-8. In general, everything displays without errors, an error only when loading.

I convert the array to json string echo json_encode($articles);

I transform back into an array data = jQuery.parseJSON(data);

Handler Code:

 <?php include 'resources/php/db.php'; mysqli_query ($db, 'set character_set_results = "utf8"'); // C какой статьи будет осуществляться вывод $startFrom = $_POST['startFrom']; $city = $_POST["cityurl"]; $categor = $_POST["categorurl"]; // Получаем 10 статей, начиная с последней отображенной $cities = array( 'Брестская область' => array( 'Брест', 'Барановичи', 'Береза', 'Ганцевичи', 'Дрогичин' ,'Жабинка' ,'Иваново', 'Ивацевичи', 'Каменец' ,'Кобрин', 'Лунинец', 'Ляховичи', 'Малорита' ,'Пинск', 'Пружаны', 'Столин', 'Брестская область'), 'Витебская область' => array( 'Витебск','Бешенковичи', 'Браслав', 'Верхнедвинск', 'Глубокое', 'Городок', 'Докшицы', 'Дубровно', 'Лепель', 'Лиозно', 'Миоры', 'Орша', 'Полоцк', 'Поставы', 'Россоны', 'Сенно', 'Толочин', 'Ушачи', 'Чашники', 'Шарковщина', 'Шумилино', 'Витебская область'), 'Гомельская область' => array( 'Гомель', 'Брагин', 'Буда-Кошелево', 'Ветка', 'Добруш', 'Ельск', 'Житковичи', 'Жлобин', 'Калинковичи', 'Корма', 'Лельчицы', 'Лоев', 'Мозырь', 'Наровля', 'Октябрьский', 'Петриков', 'Речица', 'Рогачев', 'Светлогорск', 'Хойники', 'Чечерск', 'Гомельская область'), 'Гродненская область' => array( 'Гродно', 'Берестовица', 'Волковыск', 'Вороново', 'Дятлово', 'Зельва', 'Ивье', 'Кореличи', 'Лида', 'Мосты', 'Новогрудок', 'Островец', 'Ошмяны', 'Свислочь', 'Слоним', 'Сморгонь', 'Щучин', 'Гродненская область'), 'Минская область' => array( 'Минск', 'Березино', 'Борисов', 'Вилейка', 'Воложин', 'Дзержинск', 'Жодино', 'Клецк', 'Копыль', 'Крупки', 'Логойск', 'Любань', 'Марьина Горка', 'Молодечно', 'Мядель', 'Несвиж', 'Слуцк', 'Смолевичи', 'Солигорск', 'Старые Дороги', 'Столбцы', 'Узда', 'Червень', 'Минская область'), 'Могилёвская область' => array( 'Могилев', 'Белыничи', 'Бобруйск', 'Быхов', 'Глуск', 'Горки', 'Дрибин', 'Кировск', 'Климовичи', 'Кличев', 'Костюковичи', 'Краснополье', 'Кричев', 'Круглое', 'Мстиславль', 'Осиповичи', 'Славгород', 'Хотимск', 'Чаусы', 'Чериков', 'Шклов', 'Могилёвская область') ); $categors = array( 'Детский мир' => array( 'Детский мир', 'Детская одежда', 'Детская обувь', 'Детские коляски', 'Детские автокресла', 'Детская мебель', 'Игрушки', 'Детский транспорт', 'Товары для кормления', 'Товары для школьников', 'Прочие детские товары'), 'Недвижимость' => array( 'Недвижимость','Аренда квартир','Аренда комнат', 'Аренда домов','Аренда земли','Аренда гаражей / Стоянок', 'Ищу компаньона','Продажа квартир','Продажа комнат', 'Продажа домов', 'Продажа земли','Продажа гаражей / Стоянок', 'Аренда помещений','Продажа помещений','Прочая недвижимость', 'Обмен недвижимости'), 'Транспорт' => array( 'Транспорт','Легковые автомобили','Мото','Автобусы', 'Спецтехника','Грузовые автомобили','Сельхозтехника', 'Водный транспорт','Воздушный транспорт','Запчасти / Аксессуары', 'Прицепы','Другой транспорт','Авто / Мото услуги'), 'Работа' => array( 'Работа','Розничная торговля / Продажи','Транспорт / Логистика', 'Строительство','Бары / Рестораны','Юриспруденция и Бухгалтерия', 'Охрана / Безопасность','Домашний персонал','Красота / Фитнес / Спорт', 'Туризм / Отдых / Развлечения','Образование','Культура / Искусство', 'Медицина / Фармация','ИТ / Телеком / Компьютеры','Недвижимость', 'Маркетинг / Реклама / Дизайн','Производство / Энергетика', 'Cекретариат / АХО','Частичная занятость','Начало карьеры / Студенты', 'Сервис и Быт','Другие сферы занятий'), 'Животные' => array( 'Животные','Собаки','Кошки','Аквариумистика', 'Птицы','Грызуны','Рептилии','Сельхоз животные', 'Животные даром','Зоотовары','Вязка','Бюро находок', 'Другие животные'), 'Дом и Сад' => array( 'Дом и Сад','Канцтовары / Расходные материалы', 'Мебель','Предметы интерьера','Строительство / Ремонт', 'Инструменты','Комнатные Растения','Посуда / Кухонная утварь', 'Садовый Инвентарь','Сад / Огород','Хозяйственный инвентарь / Бытовая химия', 'Прочие товары для дома'), 'Электроника' => array( 'Электроника','Телефоны','Компьютеры', 'Фото / Видео','Тв / Видеотехника','Аудиотехника', 'Игры и Игровые приставки','Техника для дома', 'Техника для кухни','Климатическое оборудование','Индивидуальный уход', 'Аксессуары и комплектующие','Прочая электроника'), 'Услуги / Бизнес' => array( 'Услуги / Бизнес','Строительство / Ремонт / Уборка', 'Финансовые услуги / Партнерство','Перевозки / Аренда транспорта', 'Реклама / Полиграфия / Маркетинг / Интернет','Няни / Сиделки', 'Сырьё / материалы','Красота / Здоровье','Оборудование','Образование / Спорт', 'Услуги для животных','Продажа бизнеса','Развлечение / Искусство / Фото / Видео', 'Туризм / Иммиграция','Услуги переводчиков / Набор текста','Авто / Мото услуги', 'Обслуживание, Ремонт техники','Сетевой маркетинг','Юридические услуги', 'Прокат товаров','Прочие услуги'), 'Мода и Cтиль' => array( 'Мода и Cтиль','Одежда/обувь','Для свадьбы', 'Мода разное','Наручные часы','Аксессуары', 'Подарки','Красота / Здоровье'), 'Хобби, Отдых и Спорт' => array( 'Хобби, Отдых и Спорт','Антиквариат / Коллекции', 'Музыкальные инструменты','Другое','Спорт / Отдых', 'Книги / Журналы','CD / DVD / Пластинки / Кассеты', 'Билеты','Поиск попутчиков','Поиск групп / Музыкантов') ); if(isset($_POST['cityurl'])) { if($city == 'Вся Беларусь') { $query = "SELECT * FROM `articles` ORDER BY `article_id` DESC LIMIT {$startFrom},12"; } elseif(array_key_exists($city, $cities)) { $query = "SELECT * FROM `articles` WHERE city IN ('" . implode("','", $cities[$city]) . "') ORDER BY `article_id` DESC LIMIT {$startFrom},12"; } else { $query = "SELECT * FROM `articles` WHERE city = '$city' ORDER BY `article_id` DESC LIMIT {$startFrom},12"; } $res = mysqli_query($db, $query); } if(isset($_POST['categorurl'])) { if($categor == 'Все категории') { $query = "SELECT * FROM `articles` ORDER BY `article_id` DESC LIMIT {$startFrom},12"; } elseif(array_key_exists($categor, $categors)) { $query = "SELECT * FROM `articles` WHERE categor IN ('" . implode("','", $categors[$categor]) . "') ORDER BY `article_id` DESC LIMIT {$startFrom},12"; } else { $query = "SELECT * FROM `articles` WHERE categor = '$categor' ORDER BY `article_id` DESC LIMIT {$startFrom},12"; } $res = mysqli_query($db, $query); } if( isset($_POST['cityurl']) and isset($_POST['categorurl']) ) { $where = array(); $where=array("1=1"); if($categor && $categor != 'Все категории') { if(array_key_exists($categor, $categors)) { $where[]="categor IN ('" . implode("','", $categors[$categor]) . "')"; } else { $where[]="categor='$categor'"; } } if($city && $city != 'Вся Беларусь') { if(array_key_exists($city, $cities)) { $where[]="city IN ('" . implode("','", $cities[$city]) . "')"; } else { $where[]="city='$city'"; } } $query = "SELECT * FROM `articles` WHERE " . implode(" AND ", $where) . " ORDER BY `article_id` DESC LIMIT {$startFrom},12"; $res = mysqli_query($db, $query); } if( !isset($_POST['cityurl']) and !isset($_POST['categorurl']) ) { $res = mysqli_query($db, "SELECT * FROM `articles` ORDER BY `article_id` DESC LIMIT {$startFrom},12"); } // Формируем массив со статьями $articles = array(); while ($row = mysqli_fetch_assoc($res)) { $articles[] = $row; } // Превращаем массив статей в json-строку для передачи через Ajax-запрос echo json_encode($articles); 

Call code:

 var inProgress = false; /* С какой статьи надо делать выборку из базы при ajax-запросе */ var startFrom = 12; $(window).scroll(function() { if($(window).scrollTop() + $(window).height() >= $(document).height() -166 && !inProgress) { $.ajax({ /* адрес файла-обработчика запроса */ url: 'scroll.php', /* метод отправки данных */ method: 'POST', /* данные, которые мы передаем в файл-обработчик */ data: {"startFrom" : startFrom}, /* что нужно сделать до отправки запрса */ beforeSend: function() { /* меняем значение флага на true, т.е. запрос сейчас в процессе выполнения */ inProgress = true;} /* что нужно сделать по факту выполнения запроса */ }).done(function(data){ /* Преобразуем результат, пришедший от обработчика - преобразуем json-строку обратно в массив */ data = jQuery.parseJSON(data); /* Если массив не пуст (т.е. статьи там есть) */ if (data.length > 0) { /* Делаем проход по каждому результату, оказвашемуся в массиве, где в index попадает индекс текущего элемента массива, а в data - сама статья */ $.each(data, function(index, data){ /* Отбираем по идентификатору блок со статьями и дозаполняем его новыми данными */ $("#articles").append("<div class='article'><div class='article_title'>" + data.title + "</div><div class='article_img'><img src=" + data.img1 + "></div><a href='#' class='article_more'>Подробнее</a></div>"); }); /* По факту окончания запроса снова меняем значение флага на false */ inProgress = false; // Увеличиваем на 10 порядковый номер статьи, с которой надо начинать выборку из базы startFrom += 12; }}); } }); 

Added conditions and everything worked, I don’t know what the problem was once in Denver everything worked

 if(isset($_POST["cityurl"])) $city = $_POST["cityurl"]; if(isset($_POST["categorurl"])) $categor = $_POST["categorurl"]; 

Closed due to the fact that off-topic participants D-side , cheops , zRrr , aleksandr barakin , user194374 11 Jun '16 at 5:58 .

It seems that this question does not correspond to the subject of the site. Those who voted to close it indicated the following reason:

  • "The question is caused by a problem that is no longer reproduced or typed . Although similar questions may be relevant on this site, solving this question is unlikely to help future visitors. You can usually avoid similar questions by writing and researching a minimum program to reproduce the problem before publishing the question. " - D-side, cheops, zRrr, aleksandr barakin, Community Spirit
If the question can be reformulated according to the rules set out in the certificate , edit it .

  • one
    If not difficult, give an error message. - cheops
  • Please note that in Denver case-insensitive file system, on the server - no. Look at the developer’s toolkit to see if the request goes, where it goes, what comes back. - ilyaplot
  • @cheops prntscr.com/bdriqj , at 219 parseJSON - idon
  • @ilyaplot All the files are in lower case, here is the error prntscr.com/bdriqj , at 219 parse JSON, probably an error when getting it - id
  • Obviously, instead of json, the server responds with html. Add data = jQuery.parseJSON (data); console.log (data); And see the result in the console. I recommend using not .done, but success, error, dataType in $ .ajax - ilyaplot

1 answer 1

 $city = $_POST["cityurl"]; $categor = $_POST["categorurl"]; 

I don’t see that the request would pass the cityurl and categorurl parameters to the POST. I think that along with Json in the response come notice

  • The fact is that I have a lot of conditions there, look at the handler code, there is a condition that if these variables are empty then we get all the objects function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { vars[key] = value; }); return vars; } function urldecode(str) { return decodeURIComponent((str+'').replace(/\+/g, '%20')); } var cityurl = getUrlVars()["city"]; var categorurl = getUrlVars()["categor"]; var cityurl = urldecode(cityurl) ; var categorurl = urldecode(categorurl) ; function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { vars[key] = value; }); return vars; } function urldecode(str) { return decodeURIComponent((str+'').replace(/\+/g, '%20')); } var cityurl = getUrlVars()["city"]; var categorurl = getUrlVars()["categor"]; var cityurl = urldecode(cityurl) ; var categorurl = urldecode(categorurl) ; - Identon
  • I do not see it in .ajax. In php we get notice. Show console.log (data) before parseJSON - ilyaplot
  • This is what prntscr.com/bds8p8 comes out with - idon
  • As I thought. $ city =! empty ($ _ POST ["cityurl"])? $ _POST ["cityurl"]: null; $ categor =! empty ($ _ POST ["categorurl"])? $ _POST ["categorurl"]: null; - ilyaplot
  • one
    Thank you Mmmm - Idkon