Sajax, не отрабатывает callback-функция

Fallen

Новичок
Sajax, не отрабатывает callback-функция

<script>

function refresh_cb_off() {
alert("!!!");
}

function display_message() {
x_return_data(0,refresh_cb_off);
}


</script>

вызываю функцию display_message, при этом параметр "0" передаётся в php-функцию return_data, но callback функция
refresh_cb_off не отрабатывает.

Если скрипт запускать localhost, то всё работает отлично, если же на хостинге, то - нет.

Могут какие-то настройки php/Apache влиять на работу? Вроде судя по мануалу Sajax, никаких требований нет?
 

dekoo

Новичок
вероятно скрипт валится на сервере (в php-функции), следовательно нужно глянуть php код...
 

WP

^_^
открое для себя отладку. посмотри что возвращает сервер и в чем разница между ответом локального сервера и на хостинге.
 

Fallen

Новичок
разобрался, дело в smarty до вывода Javascript у меня загружается smarty-шаблон.
Почитал в поиске, что можно Java код засунуть в смарти, переопределив $smarty->left(right)_delimiter...
но поскольку у меня весь проект построен на smarty, переделывать будет оч трудоёмко...может, есть другие способы?

-~{}~ 05.12.07 09:05:

цитата из PHPInside
"Затем мы поменяли стандартные делимитеры (теги) Smarty
на <{ и }>. Это сделано на всякий случай, во избежание конфликтов между символами
{ } в синтаксисе Smarty и JavaScript. Вы можете решить эту проблему иным образом."

вот и вопрос: какие другие способы есть?
 

Fallen

Новичок
допустим в php-скрипте

//Получаем JS-враппер PHP-функций в виде строки
$sajax_wrappers = sajax_get_javascript();
//Присваеваем эту строку Smarty-переменной $WRAPPERS
$smarty->assign("WRAPPERS",$sajax_wrappers);
//Выводим шаблон chat.tpl
$smarty->display("chat.tpl");

в chat.tpl

<script>
{$WRAPPERS}
function refresh_cb(new_data) {
document.getElementById("wall").innerHTML = new_data;
setTimeout("refresh_page()", 1000);
}
и т.д.
</script>

если я этот код заключу в {literal},
то {$WRAPPERS} будет обычным текстом...
если сделать так:

{literal}
<script>
{/literal}
{$WRAPPERS}
{literal}
...

то {$WRAPPERS} в свою очередь содержит Javascript, который в {literal} заключён уже не будет
 
Сверху