Использование ASP.NET AJAX вместе с PHP

Чтобы использовать платформу ASP.NET AJAX вместе с PHP, мы создадим HTML-страницу. Эта демонстрационная страница содержит текстовое поле и будет отправлять текст из этого поля веб-службе. Чтобы добавить функциональные возможности ASP.NET AJAX вызова веб-служб, необходимо загрузить клиентские библиотеки ASP.NET AJAX в HTML-страницу. Подготовьте библиотеку ASP.NET AJAX, создав на веб-сайте новый каталог с именем AjaxLibrary. (Например, если веб-сайт размещается в каталоге C:\Document and Settings\JaneDoe\AJAXEnabledWebSite1\, то необходимо создать каталог C:\Document and Settings\JaneDoe\AJAXEnabledWebSite1\AjaxLibrary.) Загрузите библиотеку Microsoft AJAX Library со страницы http://ajax.asp.net/downloads/default.aspx?tabid=47 и скопируйте каталог System.Web.Extensions в только что созданный каталог AjaxLibrary.

Затем загрузите библиотеку Microsoft AJAX Library для PHP со страницы http://codeplex.com/phpmsajax (как и в случае с ASP.NET AJAX, достаточно будет загрузить пакет без исходных текстов («NoSource»)). Распакуйте библиотеку и скопируйте файлы MSAjaxService.php и MSAjaxProxyGenerator.php в корневой каталог веб-сайта.

В части примера на языке PHP необходимо создать веб-службу, которая может вызываться из ASP.NET AJAX.


Программный код, который мы будем писать, в действительности не является «настоящей» веб-службой с интерфейсом SOAP, использующей описание WSDL, –
но этот код совместим со способом, каким ASP.NET AJAX взаимодействует с веб-службами.

Создайте текстовый файл с именем PHPHelloWorldService.php в корневом каталоге веб-сайта. В этом файле сначала нужно загрузить программный код PHP, являющийся частью библиотеки Microsoft AJAX Library, который поможет создать «совместимую» веб-службу.
require_once 'MSAjaxService.php';

Код в файле MSAjaxService.php создает расширяемый класс, пригодный для создания служб, которые могут вызываться из ASP.NET AJAX. Мы создадим простой класс PHP с очень простым методом «Hello World», аналогичным тому, что использовался в главе 1:
class PHPHelloWorldService extends MSAjaxService {
function sayHello($name) {
return "Hello $name, says the server!";
}
}

В заключение сценарий PHP должен создать экземпляр класса PHPHelloWorldService и вызвать его метод ProcessRequest(), чтобы обработать входящий запрос от ASP.NET AJAX:
$ps = new PHPHelloWorldService();
$ps?>ProcessRequest();
?>

В примере 22.1 содержится полный код нашей веб?службы на PHP.
Пример 22.1.


Веб?служба на PHP, совместимая с ASP.NET AJAX
PHPHelloWorldService.php
require_once 'MSAjaxService.php';
class PHPHelloWorldService extends MSAjaxService {
function sayHello($name) {
return "Hello $name, says the server!";
}
}
$ps = new PHPHelloWorldService();
$ps?>ProcessRequest();
?>

Главное назначение программного кода PHP состоит в том, чтобы снова создать объект?посредник JavaScript.

Теперь нам нужно написать JavaScript-код, который будет вызывать эту службу. В клиентском сценарии необходимо загрузить библиотеку Microsoft AJAX Library, которая была распакована в подкаталог AjaxLibrary. Здесь мы используем относительный путь – проверьте, существует ли указанный путь на вашем веб-сайте, и измените его в случае необходимости:


Кроме того, необходимо загрузить объект-посредник JavaScript. Для этого нужно лишь добавить /js в конец URL файла веб-службы:


Последний элемент
Пример 22.2 содержит полный код HTML-страницы, которая вызывает службу PHP с помощью библиотеки Microsoft AJAX Library.

Пример 22.2. Вызов веб?службы на PHP, совместимой с ASP.NET AJAX
PHPHelloWorldService.html
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
ASP.NET AJAX




(body)


onclick="callService(this.form);" />


(/body)


Оцените статью: (0 голосов)
0 5 0