Поскольку у вас уже есть серверный скрипт, который извлекает данные, все, что вам нужно сделать, это вернуть их в ответ на ваш XMLHttpRequest
и обработать его с помощью функции callback
.Предполагая, что вы хотите вернуть $id, $article, $thumbsup
..etc, вы можете поместить его в массив и закодировать, как предполагается, вы можете использовать json_encode()
.В вашем PHP-скрипте вы можете сделать что-то вроде:
$Response = array(
'Id' => $id,
'Article' => $article',
'ThumbsUp' => $thumbsup
)
echo json_encode($Response);
exit;
И в вашем Javascript вам может понадобиться добавить обработчик ответа, например:
xmlHttp.onreadystatechange = function() {
if (syndLinkRequest.readyState != 4)
return;
var result = xmlHttp.responseText;
/* if you've returned javascript instead of xml or text,
you can eval(result) to access the javascript variables returned.
*/
// do your thing
}
Если вам нужно изменитьЕсли вы запрашиваете данные, а не используете GET для текстового файла, в этом случае вам может потребоваться запросить непосредственно к сценарию PHP и вернуть результат:
xmlhttp.open("GET", "/ajax/update.php", true); // this will return the response
По сути, это все, что вам нужно.Для более краткого примера вы можете сослаться на здесь .
Также проверьте ajax-функции jQuery, поскольку они могут вам сильно помочь.
** EDIT **
Добавлена дополнительная информация.Поскольку мы возвращаем результат, который представляет собой JSON (с помощью json_encode), вам нужно добавить заголовок для типа контента, добавьте его в верхней части вашего скрипта чуть ниже <?php
part:
header('Content-type: application/json');
И исходя из приведенного выше примера, предполагая, что мы имеем это в качестве ответа:
$Response = array( 'Id' => $id, 'Article' => $article,'ThumbsUp' => $thumbsup);
echo json_encode($Response);
exit;
Как только вы получите это в вашей функции callback
, это будет преобразовано во что-то вроде (с примерами значений):
{"Id":1,"Article":20,"ThumbsUp":30}
, который присваивается переменной результата:
var result = xmlHttp.responseText;
Чтобы быть уверенным, что мы получим оценку ответа, мы будем использовать eval()
в строке результата, чтобы вы могли получить значенияоб этом путем доступа к свойствам.Возьмем для примера:
var result = eval(xmlHttp.responseText);
Как только это будет сделано, вы можете получить доступ к свойствам из переменной результата, например result.ThumbsUp
, которая дает вам 30
на основе примера.Затем вы можете присвоить это значение так, как вам нужно: document.getElementById('c').innerHTML = result.ThumbsUp;
Надеюсь, это даст вам более ясную идею.
Примечание к использованию eval()
, прочитайте this .