Вывод комментариев (ajax) bootsrap

229
18 декабря 2017, 15:56

Привет! Только начал изучать js. Всю голову сломал. Помогите! Страница: http://lp.medcentrperm.ru/ Скрипт (ajax) достает из бд информацию и выводит на страницу. Внутри есть условие:

         if(i % 3 == 0) {
             elem = document.createElement('div');
             elem.className = 'clearfix';
             parent.appendChild(elem);
        }

Оно не корректно работает, когда происходит:

setTimeout(function() {
    getComments(count);
}, 3000);

Так, будто значение i обнуляется.

Но при перезагрузке страницы работает нормально.

Класс clearfix нужен для корректной работы сетки bootstrap.

function getComments(count = 0) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open('post', 'libs/get_comments.php', true);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send('count=' + count);
    xmlhttp.onreadystatechange = function() {
    if(xmlhttp.readyState == 4) {
        if(xmlhttp.status == 200) {
            var data = xmlhttp.responseText;
            if(data != 'empty') {
               data = JSON.parse(data);
               for(var i = 0; i < data.length; i++) {
               var parent  = document.getElementsByClassName('comm')[0];
               var elem = document.createElement('div');
               if(i % 3 == 0) {
                   elem = document.createElement('div');
                   elem.className = 'clearfix';
                   parent.appendChild(elem);
              }
           if(i % 2 == 0) {
               var theme_head = 'size item-head item-head_theme_grey';
               var theme_body = 'size item-body item-body_theme_grey';
          }
         else {
              var theme_head = 'size item-head item-head_theme_green';
              var theme_body = 'size item-body item-body_theme_green';
         }
     elem = document.createElement('div');
     elem.className = 'col-md-3 col-md-offset-1';
     parent = parent.appendChild(elem);
     elem = document.createElement('div');
     elem.className = theme_head;
     parent.appendChild(elem);
     var text = data[i].name;
     var textNode = document.createTextNode(text);
     elem.appendChild(textNode);
     elem = document.createElement('div');
     elem.className = theme_body;
     parent.appendChild(elem);
     text = data[i].email;
     textNode = document.createTextNode(text);
     elem.appendChild(textNode);
     parent = parent.appendChild(elem);
     elem = document.createElement('div');
     elem.className = 'item-body-inner-padding';
     parent.appendChild(elem);
     text = data[i].comment;
     textNode = document.createTextNode(text);
     elem.appendChild(textNode);
     var max = data[i].id;
                }
                 count = max;
             }
         }
     }
}
setTimeout(function() {
 getComments(count);
}, 3000);

}

READ ALSO
Изменение объектов JS

Изменение объектов JS

Почему здесь при модификации объекта из функции, не меняется исходный объект? Спасибо!!

220
Ключ как значение

Ключ как значение

Как получить ключ объекта или массива как значение по-мимо конструкции for

200
Почему callback функцию нельзя сравнить с null?

Почему callback функцию нельзя сравнить с null?

Почему нельзя сравнивать callback с null? Отладчик ругается:

196
Вылетает callback error node.js

Вылетает callback error node.js

есть файл serverjs

252