English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой главе мы покажем, как отправлять AJAX-запросы к PHP-файлу и как извлекать содержимое PHP-файла.
Следующий пример показывает, как веб-страница общается с сетевым сервером и 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"); ?>
Следующий пример показывает, как веб-страница общается с веб-сервером, когда пользователь вводит символы в поле ввода:
Начните вводить название страны/территории в поле ввода ниже:
Страна:
Отзывы и предложения:
В примере выше, когда пользователь вводит символы в поле ввода, событие 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