Обновление страницы (AJAX PHP)

409
18 мая 2018, 23:20

Сразу оговорюсь, я дилетант, а не программист, задаю вопрос с целью понимания сути. Есть страница status.php делает запрос на сервер и возвращает ответ в виде:

"status_order":"process"
"order_no":""

через какое то время ответ меняется(надо обновить стр)

"status_order":"done"
"order_no":"xxx"

Как сделать так чтобы обновлялся только ответ без полного обновления страницы?

Answer 1
  xhr.onreadystatechange = function() { 
    if (xhr.readyState != 4) {
      console.log('xhr.readyState= ', xhr.readyState);
      return;
    }
    alert(xhr.status != 200 ? xhr.status + ': ' + xhr.statusText: xhr.responseText);
  }
Answer 2

Слишком расплывчатый вопрос. Без конкретики ответить можно только точно так же. Для начала нужно подготовить PHP скрипт, чтобы он отдавал то что нужно. Пример с текстом.

<?php
   $text = 'Изменяющийся текст, нужно выводить его на страницу';
   echo $text;
 ?>

Теперь элемент на странице куда это нужно отобразить

<div id="text_block" ></div>

Теперь JS. Выбираем его из дом дерева

var div = document.getElementById('text_block');

Подготавливаем функцию AJAX запроса к этому скрипту. Она принимает элемент в который будет записывать текст.

function AJAX(elem){
    // создаем объект запроса
    var request = new XMLHttpRequest(),
            data;
    // Заранее подготавливаемся к ответу
    request.onreadystatechange = function() {
        // Когда полностью получим данные
        if( request.readyState === 4 ) {
           // Сюда записываем то что получим от сервера
           data = request.responseText;
           // Записываем полученное значение в переданный елемент
           elem.innerHTML = data;
        }
    };
    // Формируем нужный запрос на нужный адрес, где лежит php скрипт
    request.open('GET','xxxxxx.php');
    // Отправляем
    request.send(); 
}

Теперь запускаем нашу функцию с заданным интервалом и передаем в нее блок (переменная div).

var timer = setInterval((function(){
   AJAX(div);       
}), 10000);

Каждые 10 секунд это значение будет записано в блок заново. Если значение на сервере будет меняться, то будет меняться и на странице без ее перезагрузки.

READ ALSO
Убрать отправку на обработчик формы

Убрать отправку на обработчик формы

Есть сайт, на котором две формыОдна из них находится в index

186
Удаление элемента двусвязного списка C++

Удаление элемента двусвязного списка C++

При успешном удалении должно возвращать true, но почему то всегда возвращает фолсВот класс:

208
Получить адрес к файлу

Получить адрес к файлу

На компьютере есть файл, пользователь его выбирает, я получаю путь до файлаТеперь мне надо прочитать байты этого файла из памяти

245
Не пишется бинарное дерево

Не пишется бинарное дерево

Есть программа в которой мне нужно построить бинарное деревоЭлементы добавляются, всё вроде бы шикарно, но когда я начинаю обходить дерево,...

228