如何将javascript变量分配给smarty变量

时间:2009-08-13 09:40:02

标签: javascript smarty

我遇到了一个关于如何将java脚本变量分配给smarty变量的问题。这是代码段。

function getDateInfo(date, wantsClassName)
{                  
    var as_number = Calendar.dateToInt(date); //This as_number is the variable which should be assigned to smarty variable    
}

我怎样才能做到这一点。

任何帮助将不胜感激..

非常感谢 - Fero

2 个答案:

答案 0 :(得分:6)

您不能将客户端值分配给smarty变量,因为smarty是在服务器上运行的模板语言。 Smarty分配只能在服务器端完成,也就是说,从PHP完成。 E.g:

$smarty->assign('timestamp',time());

所以你能做的就是:

    $smarty->assign('timestamp',time()); //in your PHP script

    //in your JS
    var currentTS = {$timestamp};

请参阅http://www.smarty.net/manual/en/api.assign.php

答案 1 :(得分:2)

对于任何带PHP的AJAX,我都会提出xajax库:

http://www.xajax-project.org/

使用xajax,您注册一个PHP函数以暴露给客户端JS代码。通过魔术,如果你在JS中调用注册函数,xajax会使用参数打包请求并将其传递回服务器。

此外,您可以将更多内容从PHP代码更新到浏览器。在单个XHR回复中,将“替换元素X与......并将元素Y替换为...”之类的东西。

xajax使AJAX样式代码非常干净。