Php 在jQuery函数中使用smarty变量
我的php从DB生成某种类型,并将其传递给Smarty变量$X 在Jquery的帮助下,我希望能够单击一个按钮,其中一个div的内容将被替换为$XPhp 在jQuery函数中使用smarty变量,php,javascript,jquery,variables,smarty,Php,Javascript,Jquery,Variables,Smarty,我的php从DB生成某种类型,并将其传递给Smarty变量$X 在Jquery的帮助下,我希望能够单击一个按钮,其中一个div的内容将被替换为$X $(document).ready(function(){ $("button").click(function(){ $("#div1").html($X); }); }); 这段Jquery脚本包含在外部js文件中。如果您有一个模板文件,可以在其中输出PHP->Smarty分配的变量,您可以做的事情是在模板中创建一个全局js变
$(document).ready(function(){
$("button").click(function(){
$("#div1").html($X);
});
});
这段Jquery脚本包含在外部js文件中。如果您有一个模板文件,可以在其中输出PHP->Smarty分配的变量,您可以做的事情是在模板中创建一个全局js变量,然后在js中正常使用该全局变量 例如: 模板文件
<script type="text/javascript">
var MyGlobalVar = "{$MyGlobalVar}";
</script>
$(document).ready(function(){
$("button").click(function(){
if (MyGlobalVar != '') {
$("#div1").html(MyGlobalVar);
} else {
alert('Error! Error! Abort!');
}
});
});
注意,您可以输出Global.js文件并由Smarty解析(尽管……这可能不是一个好主意),然后以这种方式注入PHP->Smarty变量。这会将包含的Global.js文件视为Smarty模板
为此,您需要使用,可能是以.php文件结尾命名该文件(因此它是php可解析的),并添加一个phpheader()
调用,以便php将文件内容作为Javascript内容类型输出到浏览器
Global.js
<?php
header("content-type: text/javascript");
?>
var MyGlobalVar = "{$MyGlobalVar}";
{literal}
$(document).ready(function(){
$("button").click(function(){
if (MyGlobalVar != '') {
$("#div1").html(MyGlobalVar);
} else {
alert('Error! Error! Abort!');
}
});
});
{/literal}
var MyGlobalVar=“{$MyGlobalVar}”;
{literal}
$(文档).ready(函数(){
$(“按钮”)。单击(函数(){
如果(MyGlobalVar!=''){
$(“#div1”).html(MyGlobalVar);
}否则{
警报('Error!Error!Abort!');
}
});
});
{/literal}
另外,在PHP方面,您可能需要考虑将斜杠添加到变量中,特别是如果JS变量包含HTML或其他将使用单引号或双引号的文本位。非常令人印象深刻。所以我的理解是,如果你想在JS中使用smarty变量,你必须在解析TPL时将它传递给TPL页面上的JS变量。我现在正在探索将其作为参数传递,因为我不喜欢全局变量是的,Smarty变量本质上与PHP变量没有区别(例如,Smarty编译为PHP)。您只需要一些页面就可以被Smarty解析器解析。此外,如果这回答了您的问题,请单击问题旁边和计票下方的箭头,将其作为答案。:)