Я работаю с jQuery AJAX. Используя вызов AJAX, я вызываю страницу PHP. По умолчанию он возвращает одно значение функции success AJAX. Однако я хочу получить несколько данных по отдельности. Что я могу делать?
Вот код jQuery с AJAX, который возвращает одно значение:
function getTime(){
$.ajax({
type: "POST",
url: "test.php",
data: {
fd: sdate,
sd: edate
},
dataType: "text",
success: function(msg) {
$("#results").text(msg);
}
});
};
Test.php:
echo $days;
echo $hours;
echo $minutes;
echo $seconds;



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Обычно для возврата нескольких ответов проще всего вернуть массив в кодировке json. Что-то вроде следующего должно работать.
echo json_encode( array(
"days" => $days,
"hours" => $hours,
"minutes" => $minutes,
"seconds" => $seconds
) );
Поскольку ваш запрос ajax имеет dataType: "text", вам нужно будет проанализировать ответ, чтобы использовать его с JSON.parse(msg), однако, если вы измените его на dataType: "json", вам не нужно будет выполнять этот шаг, поскольку jQuery попытается автоматически проанализировать его для вас.
ваш test.php будет таким
echo json_encode( array(
"days" => $days,
"hours" => $hours,
"minutes" => $minutes,
"seconds" => $seconds
));
и на успехе ajax
success: function(msg) {
var result = $.parseJSON(msg);
console.info(result.days)
}
Правильный способ - использовать массив и закодировать его в JSON.
echo json_encode( array(
"days" => $days;
"hours" => $hours;
"minutes" => $minutes;
"seconds" $seconds;
)
);
но вы должны использовать тип данных JSON, иначе вам придется анализировать ответ, например
var result = $.parseJSON(response);
console.info(result.days)
Привет, OP, пожалуйста, примите ответ Таплара, если он сработал, и дайте нам знать :)