PHP - AJAX PHP
AJAX — это метод веб-разработки для создания более интерактивных веб-приложений. Если вы знаете JavaScript, HTML, CSS и XML, вам нужно потратить всего немного времени, чтобы освоить AJAX.
Онлайн демонстрация AJAX PHP
В этой онлайн демонстрации у нас есть поле ввода текста, в которое вы можете ввести любое из слов JavaScript, PHP, MySQL, SQL, PostgreSQL, HTML, CSS, HTML5, CSS3, JSON, Python. Как только вы начнете вводить текст, вы можете увидеть, что некоторый связанный текст отображается ниже. Этот текст хранится в файле PHP. И все это происходит без перезагрузки страницы.
Пример AJAX
Начните вводить слово в поле ввода ниже:
Предложения:
Разбор примера AJAX PHP
В приведенном выше примере, когда пользователь вводит символ в поле ввода, выполняется функция showHint()
.
Функция запускается событием onkeyup
.
Приведём HTML-код:
Пример
Попробуй сам »<html>
<head>
<script>
function showHint(str) {
if (str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "gethint.php?q=" + str, true);
xmlhttp.send();
}
}
</script>
</head>
<body>
<p><b>Начните вводить слово в поле ввода ниже:</b></p>
<form action="">
<label for="fname">Название:</label>
<input type="text" id="fname" name="fname" onkeyup="showHint(this.value)">
</form>
<p>Предложения: <span id="txtHint"></span></p>
</body>
</html>
Разъяснение к коду:
Первым делом выполняем проверку, пусто ли поле ввода (str.length == 0). Если да, то очищаем содержимое заполнителя txtHint
и выходим из функции.
Если же поле ввода не пустое, выполняем следующие шаги:
- Создаём объект XMLHttpRequest (var xmlhttp = new XMLHttpRequest();)
- Создаём функцию, которая будет выполняться, когда будет готов ответ сервера (xmlhttp.onreadystatechange)
- Отправляем запрос в файл PHP (gethint.php) на сервере
- Обратите внимание, что к URL-адресу добавлен параметр q (gethint.php?q = "+ str)
- Переменная str содержит содержимое поля ввода
Файл PHP - "gethint.php"
Пример
<?php
// Массив с названиями
$a = ['JavaScript', 'PHP', 'MySQL', 'SQL', 'PostgreSQL', 'HTML', 'CSS', 'HTML5', 'CSS3', 'JSON', 'Python'];
// получить параметр q из URL
$q = $_REQUEST["q"];
$hint = "";
// искать все подсказки из массива, если $q отличается от ""
if ($q !== "") {
$q = strtolower($q);
$len=strlen($q);
foreach($a as $name) {
if (stristr($q, substr($name, 0, $len))) {
if ($hint === "") {
$hint = $name;
} else {
$hint .= ", $name";
}
}
}
}
// Выведите "нет предложения", если подсказка не найдена, или выведите правильные значения
echo $hint === "" ? "нет предложения" : $hint;
?>