将一个PHP变量(loop-audio.php)传递给jQuery函数(js/script.js)

时间:2013-09-12 作者:sublimelaconic

我已经为此搜索了很多次,似乎得到了不同的答案。

在我的情况下,jQuery函数必须使用来自不同文件的PHP变量。

我如何才能做到这一点?请给出清晰简单的答案。

3 个回复
SO网友:xsonic

通常,此函数允许您本地化JS字符串,但也可以使用它设置全局JS变量:

function set_my_js_var() {
    // logic here for returning the right JS var
    $myVar = "Hello World";
    return $myVar;
}
function load_fe_scripts() {
    wp_enqueue_script( \'global-js-var\', get_template_directory_uri() . \'/js/my_file.js\' );
    $localize_array = array(
        \'my_js_var\' => set_my_js_var()
    );
    wp_localize_script( \'global-js-var\', \'my_global\', $localize_array );
}
add_action(\'wp_enqueue_scripts\', \'load_fe_scripts\');
现在,您可以通过以下方式访问JS文件中的varmy_global.my_js_var

SO网友:ferenyl

您可以使用ajax从函数中获取值,请阅读以下内容:http://codex.wordpress.org/AJAX_in_Plugins

如果函数在每个负载上运行,还可以将变量保存在数据库中,并带有瞬态。http://codex.wordpress.org/Transients_API

然后使用http://codex.wordpress.org/Function_Reference/wp_localize_script 将var加载到全局javascript var。

更新:这是一种丑陋的方式。在要保存var的模板中:

<script type="text/javascript">
 <?php print_var(); ?>
</script>
在您的功能中:

<?php
// register a global outside the function
global $myVar;
function MyFunc(){
global $myVar;
...
//save the var in the global!
$MyVar = $a;
...
}

//function
function print_var(){
global $MyVar;
 echo "var myGlobalJsVar = ". $MyVar .";";
}

?>

SO网友:Mahesh

<script type="text/javascript">
var a = <?php echo $a=1; ?>
// OR 
var a = <?php global $a; echo $a; ?>
</script>
我们可以在javascript中直接使用PHP变量,如我在示例中所示

若php代码和javascript代码位于同一页面中,那个么可以使用第一种方法。否则,将php代码放在不同的页面中,并将其包含在当前页面中,然后使用第二种方法。

在第二种方法中,我使用了全局关键字。

请通过此链接PHP Language Variables Scope

结束

相关推荐

使用特定Single.php模板在Custom Taxonomy下创建术语

昨天一些很棒的人帮我解决了这个问题templates for custom taxonomy terms. 现在我有一个相关的问题。同样,我在函数中设置了一个自定义的post类型。php称为“研究”我有一个叫做“分类”的自定义分类法根据该分类法,我有以下术语:oldresearch(父项)--子项1---子项2我需要在这个术语“旧研究”下的所有单页和子目录中使用一个模板。我已经有一项研究了。其他地方正在使用的php。所以这不是我的首选。有什么想法吗?请详细说明,因为我是PHP新手-抱歉。哈哈,提前谢谢!