Форум сайта python.su
Всем привет!
Подскажите, пожалуйста, кто знает. Есть ZPT-страница. И ней в JavaScript-секции я хочу значение значение одной из переменных
определить используя python-скрипт. Делаю так:
<script language="javascript"> ... var S= '<span tal:replace="python:here.get_data_select_LabelName( label_code= DemographicsTitle , surv_lang_id= 2)" '; alert(S); ... </script>
Офлайн
Вообще, для жаваскриптов лучше использовать dtml, а в zpt писать <script src=“path-to-dtml-page” language=“javascript”>.
Офлайн
Попробовал как советовал nss И не получилось :
Сначала в ZPT подключаю js-файл
<script language="JavaScript" src="dtml_func.js" type="text/javascript"></script>
var S= GetDemographicsTitle('DemographicsTitle', 2);
function GetDemographicsTitle(DemographicsTitle, LanguageId ) { alert( 'GetDemographicsTitle DemographicsTitle::'+DemographicsTitle+' LanguageId::'+LanguageId ); Res= "<dtml-var expr= get_data_select_LabelName( 'DemographicsTitle', 2) >"; alert(Res); return Res; }
Офлайн
Zope не обрабатывает TAL внутри <script language=“javascript”>Я думаю що всередині <script language=“javascript”> тали працюють. Вони обробляються в тегах, а var S= ‘<span tal:replace=“python:here.get_data_select_LabelName( label_code= DemographicsTitle , surv_lang_id= 2)” ’; - не тег а стрічка<script language="javascript"> ... var S= '<span tal:replace="python:here.get_data_select_LabelName( label_code= DemographicsTitle , surv_lang_id= 2)" '; alert(S); ... </script>
Офлайн
NilovSergeЭто точно валидный дтмл-код? Посмотрите как в плоне сделаны Resource Registries (portal_javascripts, portal_css)И второй alert выводит на экран dtml-выражение а не значение из скрипта get_data_select_LabelName который лежит на директорию вышеRes= "<dtml-var expr= get_data_select_LabelName( 'DemographicsTitle', 2) >";
alert(Res);
return Res;
}
Офлайн
tabajaraА нельзя ли чуть подробнее? Как это должно быть написано ?
Вони обробляються в тегах.
Офлайн
> Как это должно быть написано ?
Никак. ZPT предназначен только для xml-подобных документов, то есть для документа с древовидной структурой. конструкции tal:* позволяют менять эту древовидную структуру. Для не-xml документов (джаваскрипты, цсс, и т. п.) следует использовать только dtml.
Почитайте в Zope Book в каких случаях следует использовать zpt, а в каких – dtml.
Так как полностью вашего кода не видно, а с дтмл я почти не работал, то лично мне найти ошибку тяжело.
Отредактировано (Июнь 18, 2007 12:03:04)
Офлайн
nss Правильно! +1
Офлайн