Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在jQuery函数中使用smarty变量_Php_Javascript_Jquery_Variables_Smarty - Fatal编程技术网

Php 在jQuery函数中使用smarty变量

Php 在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变

我的php从DB生成某种类型,并将其传递给Smarty变量$X

在Jquery的帮助下,我希望能够单击一个按钮,其中一个div的内容将被替换为$X

$(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可解析的),并添加一个php
header()
调用,以便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解析器解析。此外,如果这回答了您的问题,请单击问题旁边和计票下方的箭头,将其作为答案。:)