Последние учебники веб-разработки
×

PHP Руководство

PHP ГЛАВНАЯ PHP вступление PHP устанавливать PHP Синтаксис PHP переменные PHP Echo / Версия для печати PHP Типы данных PHP Строки PHP Константы PHP операторы PHP If...Else...Elseif PHP Switch PHP В то время как Loops PHP Для Loops PHP функции PHP Массивы PHP Сортировка массивов PHP Суперглобальные

PHP обращение

PHP форма обращение PHP форма Проверка PHP форма необходимые PHP форма URL/E-mail PHP форма полный

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

PHP Массивы Мульти PHP Дата и время PHP Включают PHP файл обращение PHP файл Открыть / Read PHP файл Создание / запись PHP файл Загрузить PHP Cookies PHP Sessions PHP фильтры PHP Filters продвинутый PHP Ошибка обращение PHP исключение

MySQL Database

MySQL База данных MySQL соединение MySQL Create DB MySQL Create Таблица MySQL Insert Data MySQL Получить Последняя ID MySQL Вставка нескольких MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML Парсеры PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX вступление AJAX PHP AJAX База данных AJAX XML AJAX Live Search AJAX RSS Reader AJAX Голосование

PHP Examples

PHP Примеры PHP викторина PHP сертификат

PHP Справка

PHP массив PHP Календарь PHP Дата PHP каталог PHP Ошибка PHP Файловая система PHP Фильтр PHP FTP PHP HTTP PHP Libxml PHP почта PHP математический PHP Разное PHP MySQLi PHP SimpleXML PHP строка PHP XML PHP Zip PHP Часовые пояса

 

PHP Пример - AJAX Live Search


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


AJAX Live Search

Следующий пример продемонстрирует живой поиск, где вы получите результаты поиска при вводе.

Живой поиск имеет много преимуществ по сравнению с традиционным поиском:

  • Результаты показаны как вы набираете
  • Результаты сужаться, как вы продолжаете печатать
  • Если результаты становятся слишком узкими, удалите символы, чтобы увидеть более широкий результат

Искать w3ii страницы в поле ввода ниже:

Результаты , представленные в приведенном выше примере можно найти в файле XML ( links.xml ) . Для того, чтобы этот пример маленький и простой, только шесть результаты доступны.


Пример Разъяснения - HTML-страницу

Когда пользователь вводит символ в поле ввода выше, функция " showResult() " выполняется. Функция срабатывает по "onkeyup" событие:

<html>
<head>
<script>
function showResult(str) {
  if (str.length==0) {
    document.getElementById("livesearch").innerHTML="";
    document.getElementById("livesearch").style.border="0px";
    return;
  }
  if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  } else {  // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
      document.getElementById("livesearch").style.border="1px solid #A5ACB2";
    }
  }
  xmlhttp.open("GET","livesearch.php?q="+str,true);
  xmlhttp.send();
}
</script>
</head>
<body>

<form>
<input type="text" size="30" onkeyup="showResult(this.value)">
<div id="livesearch"></div>
</form>

</body>
</html>

Исходный код объяснение:

Если поле ввода пусто (str.length==0) , то функция удаляет содержимое livesearch заполнителя и выходит из функции.

Если поле ввода не является пустым, то showResult() функция выполняет следующие действия :

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

PHP File

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

Исходный код в "livesearch.php" ищет файл XML для заголовков , соответствующих строку поиска и возвращает результат:

<?php
$xmlDoc=new DOMDocument();
$xmlDoc->load("links.xml");

$x=$xmlDoc->getElementsByTagName('link');

//get the q parameter from URL
$q=$_GET["q"];

//lookup all links from the xml file if length of q>0
if (strlen($q)>0) {
  $hint="";
  for($i=0; $i<($x->length); $i++) {
    $y=$x->item($i)->getElementsByTagName('title');
    $z=$x->item($i)->getElementsByTagName('url');
    if ($y->item(0)->nodeType==1) {
      //find a link matching the search text
      if (stristr($y->item(0)->childNodes->item(0)->nodeValue,$q)) {
        if ($hint=="") {
          $hint="<a href='" .
          $z->item(0)->childNodes->item(0)->nodeValue .
          "' target='_blank'>" .
          $y->item(0)->childNodes->item(0)->nodeValue . "</a>";
        } else {
          $hint=$hint . "<br /><a href='" .
          $z->item(0)->childNodes->item(0)->nodeValue .
          "' target='_blank'>" .
          $y->item(0)->childNodes->item(0)->nodeValue . "</a>";
        }
      }
    }
  }
}

// Set output to "no suggestion" if no hint was found
// or to the correct values
if ($hint=="") {
  $response="no suggestion";
} else {
  $response=$hint;
}

//output the response
echo $response;
?>

Если есть какие - либо текстовые сообщения, отправленные из JavaScript ( strlen($q) > 0), то происходит следующее:

  • Загрузить файл XML в новый объект XML DOM
  • Перебор всех элементов <title> для поиска совпадений в тексте посланного из JavaScript
  • Устанавливает правильный URL и заголовок в "$response" переменный. Если более чем один матч будет найден, все матчи будут добавлены к переменной
  • Если совпадений не найдено, то переменная $ ответ установлена на "no suggestion"