От автора: Я не верю в мистику! Но после того как вся семья переболела простудным, почему-то «захандрил» и мой ПК. Как сказал мне врач, нужно закаляться и внедрять профилактические меры против ОРЗ. Наверное, для компьютеров тоже применимо данное утверждение. Сегодня я приведу примеры PHP скриптов, от которых здоровье вашего «железного друга» точно не испортится.
Странная форма
Приведу вам пример «странной» веб-формы. Вот код ее разметки:
1 2 3 4 5 6 7 8 |
<h2>Поиск человека:</h2> <form id="form1" method="post"> <div> <label for="enter">Введите имя и фамилию:</label> <input type="text" name="enter" id="enter" /> </div> </form> <div id="results"></div> |
Форма странная потому, что в ней нет кнопки для отправки данных на сервер. Плюс к этому нет атрибута action, в значении которого указывается файл обработчика. В общем, полнейшая неразбериха!
Возможно, но данное приложение будет работать. Оно представляет собой модуль для поиска людей. Вся информация поставляются из базы MySQL. При этом перезагрузка страницы и отправка данных будет происходить автоматически (асинхронно) после ввода пользователем символов в текстовое поле.
MySQL и обработчик
Для начала создадим через phpMyAdmin простую таблицу в два поля. Вот ее структура:
Заполните таблицу «людьми»: введите имена и фамилии в поле human. Теперь приступим к написанию обработчика. Всего в проекте будет два файла. Код упомянутой выше веб-формы сохраните в index.php. Затем создайте следующий файл, назовите его search.php и поместите в него следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php header('Content-Type: text/html; charset=utf-8'); $connecting = mysqli_connect('localhost', 'root', '', 'ajax') or die('Не удается подключиться к MySQL.' ); $t = strip_tags(substr($_POST['enter'],0, 100)); $t = mysqli_escape_string($connecting,$t); $sql_q = "select*from people where human like '%$t%'order by human asc"; //echo $t; $select = mysqli_query($connecting,$sql_q); $str = ''; if (mysqli_num_rows($select) > 0){ while($row = mysqli_fetch_object($select)){ $str .= "<b>".$row->id."</b>. "; $str .= "<b>".$row->human."</b>"; $str .= "<br/>\n"; } }else{ $str = "Нет таких!"; } echo $str; ?> |
Если нужно проверить работу этого скрипта на Ajax PHP и MySQL примера, тогда добавьте в код формы кнопку Submit и укажите файл обработчика.
Асинхронизируем
«Оживлять» поиск мы будем средствами jQuery. Для этого нужно подключить библиотеку удаленно или скачать себе на ПК, а затем указать путь к ней. Я использовал последний вариант. Возвращаемся в index.php и прописываем путь, где находится jQuery. В разделе head страницы вставьте следующую строку:
1 |
<script src="jquery-2.0.0.min.js"></script> |
У меня библиотека расположена на локальном сервере в той же папке, где и главная страница index.php, поэтому такой короткий путь. Под предыдущей строкой добавьте следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<script type='text/javascript'> $(document).ready(function(){ $("#enter").keyup(function(e){ e.preventDefault(); poisc(); }); }); function poisc(){ $("#results").show(); var search_val=$("#enter").val(); $.post("search.php", {enter : search_val}, function(data){ if (data.length>0){ $("#results").html(data); } }) } </script> |
Все, теперь наша асинхронная форма готова к работе. При вводе любой из букв будут отображаться те персоны, в имени и фамилии которых она присутствует.
Согласен, функциональность немного хромает. Но если добавить еще несколько критериев поиска в запрос, тогда выйдет настоящий Яндекс или Google. Вот такой здоровый скрипт получился у нас сегодня :).