Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.12.2017, 14:15
Новичок на форуме
Отправить личное сообщение для Focus_r Посмотреть профиль Найти все сообщения от Focus_r
 
Регистрация: 17.12.2017
Сообщений: 3

Вывод комментариев (ajax) bootsrap
Привет! Только начал изучать 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);
              }

     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);
}



Решение взято со стороннего сайта. Вот описание: "В body, используя атрибут onload мы сразу вызываем нашу функцию. В нее передается параметр count, который по умолчанию равен 0. Дальше мы используем объект XMLHttpRequest, чтобы подключиться к серверу и указываем верную кодировку. Отправляем переменную count на сервер. В конце мы устанавливаем переменную count равной последнему id записи. В конце функции мы устанавливаем таймер, который будет вызывать нашу функцию каждые 3 секунды и передаем ему новое значение переменной count." Я скрипт отредактировал, добавив вывод блока с классом clearfix.
https://myrusakov.ru/javascript-ajax-add-comments.html
Это содержимое php http://sandbox.onlinephpfunctions.co...3f12372e01a72c

Последний раз редактировалось Focus_r, 17.12.2017 в 14:20.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод ошибок сервера через AJAX smart-create AJAX и COMET 4 19.01.2017 16:05
Вывод из таблицы в БД c помощью AJAX smart-create AJAX и COMET 4 29.12.2016 20:44
Post запрос Ajax вывод сообщения pro100deadly Элементы интерфейса 2 11.05.2016 22:44
AJAX. Добавление комментариев. Видимость формы. fanks Элементы интерфейса 3 01.12.2012 15:37
Вывод информации со страницы в ajax fAmOus Элементы интерфейса 4 17.07.2012 00:32