English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Пример AJAX PHP

В этой главе мы покажем, как отправлять AJAX-запросы к PHP-файлу и как извлекать содержимое PHP-файла.

Пример AJAX PHP 1

Следующий пример показывает, как веб-страница общается с сетевым сервером и retrieves содержимое PHP-файла:

Объяснение примера:

В примере выше, событие fetchDoc() выполняет функцию onclick.

Это HTML-код:

  <button type="button" onclick="fetchDoc()">Fetch Content</button>
  <div id="output"></div>
  
  <script>
  function fetchDoc() {
  var httpRequest = new XMLHttpRequest();
  httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
    document.getElementById("output").innerHTML = this.responseText;
   }
  }
  httpRequest.open("GET", "ajax_time.php", true);
  httpRequest.send();
  }
  </script>

Это PHP-код (ajax_time.php):

  <?php
  echo date("d/m/Y, h:i:s A");
  ?>

Пример AJAX PHP 2

Следующий пример показывает, как веб-страница общается с веб-сервером, когда пользователь вводит символы в поле ввода:

Начните вводить название страны/территории в поле ввода ниже:

Страна:

Отзывы и предложения:

Запустить код

Объяснение примера:

В примере выше, когда пользователь вводит символы в поле ввода, событие showHint() выполняет функцию onkeyup.

Это HTML-код:

  <!DOCTYPE html>
  <html>
  
  <div>
  <p>Начните вводить название страны/территории в поле ввода ниже:</p>
  <p>Страна: <input type="text" onkeyup="showHint(this.value)"></p>
  <p>Рекомендация: <span id="result"></span></p>
  </div>
  
  <script>
  var elem = document.getElementById("result");
  function showHint(name) {
  if (name.length === 0) {
   elem.innerHTML = "";
   return;
  }
   var httpRequest = new XMLHttpRequest();
   httpRequest.onreadystatechange = function() {
     if (this.readyState === 4 && this.status === 200) {
      elem.innerHTML = this.responseText;
     }
   }
   httpRequest.open("GET", "ajax_hint.php?q=" + name, true);
   httpRequest.send();
  }
  }
  </script>
  
  
  </html>

Это PHP-код (ajax_hint.php):

  <?php
  
  //Массив названий стран
  $countries = array("Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",...);
  //Получение параметра q из URL
  $q = $_REQUEST["q"];
  
  $hint = "";
  
  //Если $q не совпадает с подсказками в массиве, выполняется цикл через все подсказки в массиве ""
  if ($q !== "") {
    $q = strtolower($q);
    $len = strlen($q);
    foreach($countries as $name) {
    if (stristr($q, substr($name, 0, $len))) {
      if ($hint === "") {
        $hint = $name;
      }
        $hint .= ", $name";
      }
    }
    }
  }
  
  //Если не найдены подсказки или выводится правильное значение, выводится "no suggestion"
  echo $hint === "" ? "no suggestion" : $hint;
  
  ?>

Полный список названий стран см.https://gist.github.com/DHS/1340150