Источник:
http://kpumuk.info/
Сегодня я написал простые плагины для
Smarty, поддерживающие AJAX. Я не пытался разработать мощный
фреймворк для веб-приложений,- просто хотелось дать идею, как
можно интегрировать AJAX-технологию в Smarty. Но если у Вас есть
любые предложения по улучшению системы, или Вы просто хотите
отправить отзыв, оставьте комментарий на сайте.
На практике мне нужно несколько вещей от AJAX: обновить
некоторые узлы DOM, отправить форму на сервер без перегрузки
страницы, получить некоторые значения или выполнить вычисления
на стороне сервера (возможно с использованием базы данных или
других серверных ресурсов). Необходимо написать кучу кода
JavaScript для реализации этих требований, даже несмотря на
использование замечательной библиотеки JavaScript
Prototype.
Я решил подружить Smarty и AJAX. Вот три плагина Smarty,
которые были созданы: ajax_update, ajax_call,
ajax_form. Ниже я опишу все эти плагины.
ajax_update
Эта функция Smarty может быть использована для обновления
некоторых частей веб-страницы.
Пример использования:
<a href="#" onclick="{ajax_update
update_id='intro_content'
function='update_intro'
params='page=about'}">О
нас</a>
Возможные параметры:
- url - URL для AJAX-запроса (если не
указан URL, будет использован текущий)
- method - метод запроса (по умолчанию
get, может быть get или post)
- update_id - ID элемента HTML для
обновления
- function - имя функции PHP, которая
будет вызвана
- params - URL-закодированные параметры
ajax_call
Эта функция Smarty может быть использована для вызова
PHP-функции на стороне сервера и получения результатов ее вывода.
Пример использования:
<a href="#" onclick="{ajax_call
function='calculate'
params_func='calc_params'
callback='calc_cb'}">Посчитать</a>
Возможные параметры:
- url - URL для AJAX-запроса (если не
указан URL, будет использован текущий)
- method - метод запроса (по умолчанию
get, может быть get или post)
- function - имя функции PHP, которая
будет вызвана
- params - URL-закодированные параметры
- callback - функция JavaScript, которая
будет выполнена по завершении запроса
- params_func - функция JavaScript,
которая используется для вычисления параметров запроса на
стороне клиента
ajax_form
Этот блок Smarty может быть использован для отправки веб-форм
на сервер без перезагрузки страницы.
Пример использования:
{ajax_form method="post"
id="form_register"}
Любой элемент формы может быть размещен здесь
{/ajax_form}
Возможные параметры:
- url - URL для AJAX-запроса (если не
указан URL, будет использован текущий)
- method - метод запроса (по умолчанию
get, может быть get или post)
- params - URL-закодированные параметры
- id - ID элемента формы
- callback - функция JavaScript, которая
будет выполнена по завершении запроса
Примеры
Эти плагины достаточно просты, и я думаю, что любой может
создать получше моих. Я всего-лишь хотел показать идею, как
можно произвести интеграцию. Рабочие примеры можно найти
здесь. Кроме того, Вы можете
скачать все исходники.
|