Чтение онлайн

на главную - закладки

Жанры

Основы программирования на JavaScript

Кан Марк

Шрифт:

end if

end if

next

end if

'Вывод "нет предложений" если рекомендуемого имени не найдено

'или вывод подходящих значений

if hint="" then

response.write("нет предложений")

else

response.write(hint)

end if

%>

Приведенный выше код переписан на PHP.

Примечание: Чтобы выполнить весь пример на PHP, не забудьте изменить значение переменной url в "clienthint.js" с "gethint.asp"

на "gethint.php".

<?php

// Заполняем массив именами

$a[]="Anna";

$a[]="Brittany";

$a[]="Cinderella";

$a[]="Diana";

$a[]="Eva";

$a[]="Fiona";

$a[]="Gunda";

$a[]="Hege";

$a[]="Inga";

$a[]="Johanna";

$a[]="Kitty";

$a[]="Linda";

$a[]="Nina";

$a[]="Ophelia";

$a[]="Petunia";

$a[]="Amanda";

$a[]="Raquel";

$a[]="Cindy";

$a[]="Doris";

$a[]="Eve";

$a[]="Evita";

$a[]="Sunniva";

$a[]="Tove";

$a[]="Unni";

$a[]="Violet";

$a[]="Liza";

$a[]="Elizabeth";

$a[]="Ellen";

$a[]="Wenche";

$a[]="Vicky";

//извлечение параметра q из URL

$q=$_GET["q"];

//поиск всех рекомендаций в массиве, если длина q>0

if (strlen($q) > 0)

{

$hint="";

for($i=0; $i<count($a); $i++)

{

if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))

{

if ($hint=="")

{

$hint=$a[$i];

}

else

{

$hint=$hint." , ".$a[$i];

}

}

}

}

// Вывод "нет предложений", если рекомендаций не найдено

// или вывод подходящих значений

if ($hint == "")

{

$response="нет предложений";

}

else

{

$response=$hint;

}

//вывод ответа

echo $response;

?>

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

В следующем примере приложения AJAX будет показано, как Web-страница может извлекать информацию из базы данных с помощью технологии AJAX.

На Web-странице выводится список выбора с именами клиентов.

При выборе любого клиента на странице выводится связанная с ним информация из базы данных

Описанный выше пример страницы содержит простую форму HTML и ссылку на сценарий JavaScript:

<html>

<head>

<script src="selectcustomer.js"></script>

</head>

<body>

<form>

Выберите заказчика:

<select name="customers" onchange="showCustomer(this.value)">

<option value="ALFKI">Alfreds Futterkiste

<option value="NORTS ">North/South

<option value="WOLZA">Wolski Zajazd

</select>

</form>

<div id="txtHint"><b>Информация

о заказчике будет выводиться здесь.</b></div>

</body>

</html>

Как можно видеть, это просто форма HTML с раскрывающимся списком с названием "customers".

Параграф ниже формы содержит тег div с именем "txtHint". Тег div используется в качестве поля для заполнения получаемой с Web-сервера информацией.

Когда пользователь выбирает данные (имя заказчика), выполняется функция "showCustomer". Выполнение функции запускается событием "onchange". Другими словами, каждый раз, когда пользователь изменяет значение в поле раскрывающегося списка, вызывается функция showCustomer.

Код JavaScript показан далее.

Следующий далее код JavaScript находится в файле "selectcustomer.js":

var xmlHttp

function showCustomer(str)

{

xmlHttp=GetXmlHttpObject

if (xmlHttp==null)

{

alert ("Браузер не поддерживает запросы HTTP")

return

}

var url="getcustomer.asp"

url=url+"?q="+str

url=url+"&sid="+Math.random

xmlHttp.onreadystatechange=stateChanged

xmlHttp.open("GET",url,true)

xmlHttp.send(null)

}

function stateChanged

{

if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")

{

document.getElementById("txtHint").innerHTML=xmlHttp.responseText

}

}

function GetXmlHttpObject

{

var objXMLHttp=null

if (window.XMLHttpRequest)

{

objXMLHttp=new XMLHttpRequest

}

else if (window.ActiveXObject)

{

objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")

}

return objXMLHttp

}

Серверная страница, вызываемая сценарием JavaScript, является просто файлом ASP file с именем "getcustomer.asp".

Страница написана на VBScript для Информационного сервера Интернет (IIS). Ее можно легко переписать на PHP, или любой другой серверный язык.

Код выполняет команды SQL на базе данных и возвращает результат в виде таблицы HTML:

sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID="

sql=sql & request.querystring("q")

Поделиться:
Популярные книги

Презумпция виновности

Шульгина Анна
3. Научный подход
Любовные романы:
современные любовные романы
9.36
рейтинг книги
Презумпция виновности

Герой

Бубела Олег Николаевич
4. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Герой

Газлайтер. Том 10

Володин Григорий Григорьевич
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
Газлайтер. Том 10

Золушка (сборник)

Макбейн Эд
Мастера остросюжетного романа
Детективы:
полицейские детективы
5.00
рейтинг книги
Золушка (сборник)

Протокол «Сигма»

Ладлэм Роберт
Детективы:
политические детективы
5.00
рейтинг книги
Протокол «Сигма»

Сталин

Радзинский Эдвард Станиславович
3. Загадки жизни и смерти
Проза:
историческая проза
7.36
рейтинг книги
Сталин

Книга драконов

Страуд Джонатан
Фантастика:
фэнтези
героическая фантастика
юмористическая фантастика
7.50
рейтинг книги
Книга драконов

Локки 4 Потомок бога

Решетов Евгений Валерьевич
4. Локки
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Локки 4 Потомок бога

Тринадцатый V

NikL
5. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.50
рейтинг книги
Тринадцатый V

Двадцать один год

Кинешемцева Мелания
Любовные романы:
прочие любовные романы
5.00
рейтинг книги
Двадцать один год

Рассказы

Фолкнер Уильям Катберт
Проза:
классическая проза
5.00
рейтинг книги
Рассказы

"Фантастика 2025-106" Компиляция. Книги 1-15

Александрова Марина
Фантастика 2025. Компиляция
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
альтернативная история
постапокалипсис
фэнтези
5.00
рейтинг книги
Фантастика 2025-106 Компиляция. Книги 1-15

Животворящая сила

Сытин Георгий Николаевич
Научно-образовательная:
психология
медицина
7.00
рейтинг книги
Животворящая сила

Гражданин Галактики (сборник)

Хайнлайн Роберт Энсон
Отцы-основатели. Весь Хайнлайн
Фантастика:
научная фантастика
8.12
рейтинг книги
Гражданин Галактики (сборник)