本地化脚本以将值传递给Java脚本函数

时间:2015-06-22 作者:urka_mazurka

我真的很喜欢这个。经过几个小时的考验,我无法摆脱。

我试图将一个php变量值传递给排队的jquery脚本,但我做不到。

这是我的密码。

php:

function itinerary_enqueuescripts(){
wp_enqueue_script(\'itenqueue\', JSONURL.\'/js/loadjson.js\', array(\'jquery\'));
wp_localize_script( \'itenqueue\', \'itajax\', array( \'ajaxurl\' => "hithere" ) );
}
add_action(\'wp_enqueue_scripts\', \'itinerary_enqueuescripts\');
在我的loadjson中。js文件我有一个简单的

var _latitude = 43.309; 
var _longitude = 8.499;
var jsonPath = itajax.ajaxurl; //and should transform, in this example, in hithere
但当脚本排队时,var jsonPath将作为itajax的值。ajaxurl:)

脚本正确排队,在本例中,我做了一个简单的变量声明(只是为了解决问题..例如,脚本过早排队)。

有趣的是(也许这里有个线索,这是我的另一个插件的复制/粘贴,对于一个指向admin-ajax.php进行前端发布的函数。它的语法是相同的,当然变量名称不同,但在这种情况下它不起作用)。

谢谢你的提示。(我做了很多尝试,注册本地化排队,最后在wp\\u页脚排队……甚至将双引号改为单引号:)现在我想我真的错过了什么。

2 个回复
最合适的回答,由SO网友:Nilambar Sharma 整理而成

JS变量不会像您期望的那样直接替换。在代码中本地化是正确的。

当你这样做的时候var jsonPath = itajax.ajaxurl;, 的值itajax.ajaxurl 分配给变量jsonPath.

如果在控制台中调试此变量,将获得正确的值。console.log(jsonPath);

SO网友:rhysclay

似乎你需要添加__ 在变量值之前,请尝试以下代码:

wp_localize_script(\'itenqueue\', \'itajax\', array(
    \'ajaxurl\' => __(\'hi there\')
)

结束

相关推荐