Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


Итак, как уже говорилось, в декабрьском (2005 г.) номере phpinside была опубликована статья "Sajax - реализация Ajax в PHP". Статья несомненно хорошая, с примерами. Используется библиотека sajax, работающая, кстати совсем не только с PHP, но и с ASP, Phyton, Rubby, Perl и т.д.
Так вот, у меня тут дошли наконец руки посмотреть примеры и подробности и по этому поводу 2 замечания:
1) в примере из статьи ("Пример для быстрого старта") - опечатка. Вызов x_onClick="AjaxDo()"; - неверен. Следует переправить на onClick="AjaxDo()";
2) после этого пример начинает работать, на его основе можно городить что-то посложнее, но все это счастье кончается, как только мы переходим к работе с template-ами, в которых html отделен от кода. (Я работаю с потомками phplib, но, думаю, что сказанное верно для любых шаблонов, в которых переменные просто вставляются, например в фигурных скобках {my_var} (smarty и другие, особенно пассивные шаблоны). В этом случае попытка выкинуть PHP-код в PHP, оставив HTML и JavaScript в шаблоне терпит фиаско, т.к. наружу нагло лезет кусок, JavaScripta, высовываемого наружу из самой библиотеки.
Решение: правим функцию, которая хулиганит: function sajax_show_javascript вместо echo sajax_get_javascript(); пишем return sajax_get_javascript();
Код: Выделить весь код
	function sajax_show_javascript()
	{
		// sajax + templates (i.e. our, smarty (as it use the same principle) and others)
		return sajax_get_javascript();
	}
теперь в шаблоне можно вместо вставки PHP с вызовом этой функции написать, скажем {sajax}, а в обрабатывающем PHP установить для этой переменной значение sajax_show_javascript()
have fun

Последний раз редактировалось mar, 28-05-2006 в 13:11.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:10, 01-03-2006 | #25