Подгрузка AJAX-ом данных из базы данных в цикле с выводом и интервалом в 60сек

Webmaster911

Новичок
Всем доброго дня, может поможете решить одну задачку.
Суть в чем есть кнопка с колокольчиком. Надо сделать так чтобы при нажатии на него выводились данные из БД с ошибками за последние 60 сек (т.е. подгружались аяксом) в количестве 15шт. В файле где идет выборка данных все понятно -вывод через цикл while ассоциативного массива.
Сама кнопка по умолчанию должна быть скрыта, а появлялась только когда появляются новые ошибки в БД и колокольчик должен вибрировать, а рядом с колокольчиком должен появляться счетчик который подсчитывает ошибки за сутки с 00:00. На странице вывода использовал функции JS hide(), show(), setInterval(), setTimeout но пока ничего не получается. Надо ли цикл выводить в файле выборки или через json цикл выводить на странице отображения результата? Может есть какие идеи?
 

Webmaster911

Новичок
Вообщем задачу решил. Кому интересно расскажу. Создал аякс запрос на файл в котором сделал выборку из БД и вывел циклом while присвоив перед циклом переменной пустоту, а в цикле конкатенировал с row['vars']. Затем после цикла вывел эхом.
$str='';
while ($row = $inDB->fetch_assoc($result)) {
$str.= '<li><a class="check_log" href="?view=components&update=1">';
$str.=$row['id'] .'<br>';
$str.=$row['name'] . '<br>';
$str.=$row['start_time'] . '<br>';
$str.=$row['result'];
$str.= '</a></li>';
}
echo json_encode([
"count"=>$inDB->num_rows($result),
"html"=>$str,
]);
а в аяксе принял так
$(document).ready(function(){
getErrors();
setInterval (function () {
getErrors();
},60000);
});

function getErrors() {
$('#parse_err').hide();
$.ajax({
type: "POST",
url: '/ajax_function.php',
data: {
'action': 'parse_errors'
},
success: function (data) {
console.log(data);
data=JSON.parse(data);
if((data.count)>0){
$('#parse_err').show();
$('.errors-dropdown').html(data.html);
$('#parse_counter').html(data.count);
}
}
});
}
и в файле вывода логов так
if($_GET['update'] == 1){
$sql = "UPDATE `parse_logs` SET parse_logs.notified = 1 WHERE parse_logs.notified = 0";
$result=$inDB->query($sql);
}
Надеюсь логика понятна
 
Сверху