Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

pvam Просветленный (23903), на голосовании 2 года назад
Создал обновление параметра из бд по примеру 1 с сайта
https://codething.ru/ajax.php
В time.php у меня вывод результата запроса из бд.
Как сделать обновления нескольких параметров запросом одного файла чтобы не создавать и опрашивать несколько файлов?
Поля хочу раскидать по разным точкам на сайте.
Голосование за лучший ответ
Дмитрий Царь Мудрец (11433) 2 года назад
Передавайте данные через AJAX-запрос, что вы от него хотите получить.
 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:
 if($_POST['need'] == "time") {echo date("h:i:s");}
if($_POST['need'] == "date") {echo date("d.m.Y");}

Вариант 2, если нужно обновлять эти данные одновременно – разбивать ответ, например в JSON:
 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:
 $return = [];

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

echo json_encode($return);
Если собирётесь пересылать через AJAX разметку, придётся повозиться с экранированием, поскольку использовать кавычки в разметке будет чревато ошибкой парсинга JSON-строки.
pvamПросветленный (23903) 2 года назад
Спасибо, я хотел именно второй вариант
pvamПросветленный (23903) 2 года назад
Реализовал успешно. Еще раз спасибо.
Дмитрий Царь Мудрец (11433) pvam, рад помочь)
Похожие вопросы