如何使用Smarty通过函数传递javascript变量?
我试图通过如何使用Smarty通过函数传递javascript变量?,javascript,smarty,Javascript,Smarty,我试图通过Smarty将参数传递给函数。像这样: $('#buttonClose').click(function(){ var name = document.getElementById('nameSpan').value; {$person->addName(name)} }); 但是它传递的是值“name”,而不是变量name的实际值 如何获取函数addName中变量name的实际值 提前谢谢 所有Smarty代码都在服务器上运行,而不是在客户端上运行。如果Jav
Smarty
将参数传递给函数。像这样:
$('#buttonClose').click(function(){
var name = document.getElementById('nameSpan').value;
{$person->addName(name)}
});
但是它传递的是值“name”,而不是变量name
的实际值
如何获取函数addName
中变量name
的实际值
提前谢谢 所有Smarty代码都在服务器上运行,而不是在客户端上运行。如果Javascript中有Smarty函数调用,它们将在呈现页面时运行,而不是在客户端浏览器中调用函数/事件时运行。如果要从Javascript运行PHP调用,必须创建一个PHP端点,例如
addname.PHP
,并使用AJAX请求调用它
$('#buttonClose').click(function(){
var name = document.getElementById('nameSpan').value;
$.post( "addname.php", { name: name, person: person_id } );
});
不能将客户端值分配给smarty变量,因为smarty是在服务器上运行的模板语言。Smarty分配只能在服务器端完成,也就是说,可以从PHP完成。例如:
$smarty->assign('timestamp',time());
所以你能做的是:
$smarty->assign('timestamp',time()); //in your PHP script
//in your JS
var currentTS = {$timestamp};
请参见客户端与服务器。不工作JQuery中的PHP将无法工作。@阿米特:那么,我应该在javascript上这样做吗?@MHakvoort是的,它可以工作。这就是
Smarty
的目的,我使用了另一个没有参数的函数,可以将PHP和JQuery结合起来正常工作。Smarty不能使用客户端变量,比如JavaScript创建的变量。