САЙТ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ НА РУССКОМ ЯЗЫКЕ
×

PHP5 Учебник

PHP Главная PHP Введение PHP Установка PHP Синтаксис PHP Переменные PHP Echo/Print PHP Типы данных PHP Строки PHP Константы PHP Операторы PHP Заявления if...else PHP Заявления switch PHP Цикл while PHP Циклы for, foreach PHP Функции PHP Массивы PHP Сортировка массивов PHP Суперглобальные массивы

PHP Формы

PHP Обработка форм PHP Проверка форм PHP Поля форм PHP Проверка почты PHP Полная форма

PHP Продвинутый

PHP Мульти массивы PHP Дата и время PHP Подключение PHP Обработка файлов PHP Открыть файл PHP Создать файл PHP Загрузить файл PHP Файлы cookie PHP Проведение сессий PHP Фильтры PHP Расширенные фильтры PHP Обработка ошибок PHP Обработка исключений

MySQL

MySQL База данных MySQL Установить MySQL Создать БД MySQL Создать таблицу MySQL Вставить данные MySQL Получить ID MySQL Вставить записи MySQL Подготовленные MySQL Выбрать данные MySQL Удалить данные MySQL Обновить данные MySQL Лимит данных

PHP - XML

PHP XML Парсер PHP XML Анализатор PHP XML Вывод PHP XML Экспат PHP XML DOM

PHP - AJAX

AJAX Введение AJAX PHP AJAX База данных AJAX XML AJAX Живой Поиск AJAX RSS Считывание AJAX Опрос

PHP Примеры

PHP Примеры

PHP5 AJAX и MySQL



AJAX можно использовать для интерактивной связи с базой данных.


AJAX Пример базы данных

Следующий пример продемонстрирует, как веб страница может получать информацию из базы данных с помощью AJAX:

Пример


Информация о человеке будет указана здесь...

Объяснение примера - MySQL база данных

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

id Имя Фамилия Лет Город Занятие
1 Андрей Щипунов 49 Пермь Веб разработчик
2 Татьяна Щипунов 43 Пермь Депиляция
3 Кристина Щипунов 20 Пермь Массаж
4 Леонид Щипунов 85 Пермь Пенсионер


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

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

Функция вызывается событие onchange.

Вот HTML код:

Пример

<html>
<head>
<script>
function showUser(str) {
    if (str == "") {
        document.getElementById("txtHint").innerHTML = "";
        return;
    } else {
        if (window.XMLHttpRequest) {
            // код для IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // код для IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("txtHint").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET","getuser.php?q="+str,true);
        xmlhttp.send();
    }
}
</script>
</head>
<body>

<form>
<select name="users" onchange="showUser(this.value)">
  <option value="">Выберите человека:</option>
  <option value="1">Андрей Щипунов</option>
  <option value="2">Татьяна Щипунова</option>
  <option value="3">Кристина Щипунова</option>
  <option value="4">Леонид Щипунов</option>
  </select>
</form>
<br>
<div id="txtHint"><b>Информация о человеке будет указана здесь...</b></div>

</body>
</html>
Смотреть код »

Объяснение кода:

Сначала проверьте, выбран ли человек. Если ни один человек не выбран str == "", очистите содержание txtHint и выйти из функции. Если выбран человек, выполните следующие действия:

  • Создание объекта XMLHttpRequest
  • Создайте функцию, которая будет выполняться, когда ответ сервера будет готов
  • Отправить запрос в файл на сервере
  • Обратите внимание, что параметр q добавляется в URL адрес (с содержимым раскрывающегося списка)

PHP файл

Страница на сервере, вызываемая JavaScript выше, является PHP-файлом с именем "getuser.php".

Исходный код в "getuser.php" выполняет запрос к базе данных MySQL и возвращает результат в формате HTML таблица:

<!DOCTYPE html>
<html>
<head>
<style>
table {
    width: 100%;
    border-collapse: collapse;
}

table, td, th {
    border: 1px solid black;
    padding: 5px;
}

th {text-align: left;}
</style>
</head>
<body>

<?php
$q = intval($_GET['q']);

$con = mysqli_connect('localhost','peter','abc123','my_db');
if (!$con) {
    die('Не удалось подключиться: ' . mysqli_error($con));
}

mysqli_select_db($con,"ajax_demo");
$sql="SELECT * FROM user WHERE id = '".$q."'";
$result = mysqli_query($con,$sql);

echo "<table>
<tr>
<th>Имя</th>
<th>Фамилия</th>
<th>Лет</th>
<th>Город</th>
<th>Занятие</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
    echo "<tr>";
    echo "<td>" . $row['FirstName'] . "</td>";
    echo "<td>" . $row['LastName'] . "</td>";
    echo "<td>" . $row['Age'] . "</td>";
    echo "<td>" . $row['Hometown'] . "</td>";
    echo "<td>" . $row['Job'] . "</td>";
    echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
</body>
</html>

Пояснение: при отправке запроса из JavaScript в PHP-файл происходит следующее:

  1. PHP открывает соединение с сервером MySQL
  2. Правильный человек найден
  3. HTML таблица создается, заполняется данными, и отправляются обратно в заполнитель txtHint