Javascript Wordpress将变量传递给JS

Javascript Wordpress将变量传递给JS,javascript,jquery,variables,wordpress,Javascript,Jquery,Variables,Wordpress,我在jquery中使用wordpress生成的变量时遇到问题。我怀疑wordpress方面工作得很好,但在我的js中,我没有做到这一点 您可以在此处看到工作代码: 我传递的变量如下: $test2[] = array( 'latitude' => $neg_lat.number_format($lat,6), 'longitude' => $neg_lng.number_format($lng,6), 'html' => '<img src='.$

我在jquery中使用wordpress生成的变量时遇到问题。我怀疑wordpress方面工作得很好,但在我的js中,我没有做到这一点

您可以在此处看到工作代码:

我传递的变量如下:

$test2[] = array(
    'latitude' => $neg_lat.number_format($lat,6),
    'longitude' => $neg_lng.number_format($lng,6),
    'html' => '<img src='.$thumbnail[0].'/><p>'.$title.'</p>'
);

wp_register_script( 'backend_map_script_geo', ''.WP_PLUGIN_URL.'/magic-gallery/js/frontendmap_geo.js', null, null);
wp_enqueue_script( 'backend_map_script_geo');
wp_localize_script( 'backend_map_script_geo', 'markers', json_encode($test2));
jQuery(document).ready(function() {

    var adress_test = backendmapparams;

    alert(adress_test);

    var map2 = jQuery("#testmap");
        map2.gMap({

            markers: [

                {latitude:59.329500,longitude:18.111167,html:"<img src=http://www.gport.nl/dev/pluginshop/wp-content/uploads/2011/11/IMG_0522-100x100.jpg/><p>IMG_0522</p>"},{latitude:53.197572,longitude:5.797106,html:"<img src=http://www.gport.nl/dev/pluginshop/wp-content/uploads/2011/11/IMAG0183-100x100.jpg/><p>IMAG0183</p>"},{latitude:51.523000,longitude:0.106167,html:"<img src=http://www.gport.nl/dev/pluginshop/wp-content/uploads/2011/11/IMG_0818-100x100.jpg/><p>IMG_0818</p>"},

            ],

        zoom: "fit",
        latitude: "fit",
        longitude: "fit",
        onComplete: function() {
            var center = map2.data('gmap').gmap.getCenter();
        }
    });

});
我从警报输出中得到的结果如下:

{latitude:59.329500,longitude:18.111167,html:"<img src=http://www.gport.nl/dev/pluginshop/wp-content/uploads/2011/11/IMG_0522-100x100.jpg/><p>IMG_0522</p>"},{latitude:53.197572,longitude:5.797106,html:"<img src=http://www.gport.nl/dev/pluginshop/wp-content/uploads/2011/11/IMAG0183-100x100.jpg/><p>IMAG0183</p>"},{latitude:51.523000,longitude:0.106167,html:"<img src=http://www.gport.nl/dev/pluginshop/wp-content/uploads/2011/11/IMG_0818-100x100.jpg/><p>IMG_0818</p>"},
一切正常。我觉得我做错了什么,但似乎不知道是什么。任何帮助都将不胜感激

使用jQuery.parseJSON对JSON结果进行解码得到的结果只是一个字符串

您的backendmapparams是否用引号括起来?Alert函数不会抱怨输出字符串,而markers会期望和对象,而不是字符串。我这样问是因为如果backendmapparams实际上是一个对象,那么您将在警报消息中得到[Object Object],而不是

{纬度:59.329500,经度:18.111167,html:IMG_0522

},{纬度:53.197572,经度:5.797106,html:IMAG0183

},{纬度:51.523000,经度:0.106167,html:IMG_0818

}


哪个是字符串。

你的地址测试肯定是一个对象吗?尝试执行alerttypeof Address_测试。它仍然是一个字符串,jQuery.parseJSON不应该处理这个问题吗?我已经将它作为一个对象输出。该对象显示在console.log中,但它仍然不起作用。我已经更新了上面的代码。谢谢:我假设您在PHP端谈论json_enode?我已经试过了,但没有什么不同:在使用dorian的jQuery.parseJSONbackendmapparams;,引号不见了,但代码仍不能正常运行。不过,感谢您的明确解释:您可以通过以下方式在此处查看:
jQuery(document).ready(function() {

    var adress_test = backendmapparams;

    alert(adress_test);

    var map2 = jQuery("#testmap");
        map2.gMap({

            markers: [

                {latitude:59.329500,longitude:18.111167,html:"<img src=http://www.gport.nl/dev/pluginshop/wp-content/uploads/2011/11/IMG_0522-100x100.jpg/><p>IMG_0522</p>"},{latitude:53.197572,longitude:5.797106,html:"<img src=http://www.gport.nl/dev/pluginshop/wp-content/uploads/2011/11/IMAG0183-100x100.jpg/><p>IMAG0183</p>"},{latitude:51.523000,longitude:0.106167,html:"<img src=http://www.gport.nl/dev/pluginshop/wp-content/uploads/2011/11/IMG_0818-100x100.jpg/><p>IMG_0818</p>"},

            ],

        zoom: "fit",
        latitude: "fit",
        longitude: "fit",
        onComplete: function() {
            var center = map2.data('gmap').gmap.getCenter();
        }
    });

});