Top.Mail.Ru
Ответы

Динамическое обновление данных

Создал обновление параметра из бд по примеру 1 с сайта
https://codething.ru/ajax.php
В time.php у меня вывод результата запроса из бд.
Как сделать обновления нескольких параметров запросом одного файла чтобы не создавать и опрашивать несколько файлов?
Поля хочу раскидать по разным точкам на сайте.

По дате
По рейтингу
Аватар пользователя
Мастер

Передавайте данные через AJAX-запрос, что вы от него хотите получить.

12345678910111213141516171819202122232425262728
 function getTime(blockid = null) { 
    $.ajax({  
        url: 'ajax.php',  
        method: 'POST',  
        data: {  
            need: 'time' // <----------
        },  
        success: function (result) {  
            $(blockid).html(result);  
        }  
    }); 
} 
 
function getDate(blockid = null) {  
    $.ajax({   
        url: 'ajax.php',   
        method: 'POST',   
        data: {   
            need: 'date' // <----------
        },   
        success: function (result) {   
            $(blockid).html(result);   
        }   
    });  
} 
 
setInterval(getTime("#timer"), 5000); 
setInterval(getDate("#date"), 5000); 


PHP:

12
 if($_POST['need'] == "time") {echo date("h:i:s");}
if($_POST['need'] == "date") {echo date("d.m.Y");} 


Вариант 2, если нужно обновлять эти данные одновременно – разбивать ответ, например в JSON:

12345678910111213
 function reloadData() {
    $.ajax({
        url: 'ajax.php',
        method: 'POST',
        success: function (result) {
            var result_parsed = JSON.parse(result);
            $("#time").html(result_parsed.time);
            $("#date").html(result_parsed.date);
        }
    });
}

setInterval(reloadData(), 5000); 

PHP:

123456
 $return = [];

$return['time'] = date("h:i:s");
$return['date'] = date("d.m.Y");

echo json_encode($return); 

Если собирётесь пересылать через AJAX разметку, придётся повозиться с экранированием, поскольку использовать кавычки в разметке будет чревато ошибкой парсинга JSON-строки.