jqueryでwordpress生成変数を使用している問題があります。ワードプレス側はうまく動作します(私は疑います)が、私のjsでは私はそこに着いていません。WordpressをJSに渡す変数
あなたはここで働いコード見ることができます:私はこのような変数に渡しているhttp://www.gport.nl/dev/pluginshop/gallery/geodata/
を:
$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));
と、次のJSで:
jQuery(document).ready(function() {
var adress_test = jQuery.parseJSON(markers);
alert(adress_test);
console.log(adress_test);
var map2 = jQuery("#testmap");
map2.gMap({
markers: [
adress_test
],
zoom: "fit",
latitude: "fit",
longitude: "fit",
onComplete: function() {
var center = map2.data('gmap').gmap.getCenter();
}
});
});
結果Iこのように警告出力から抜け出す:
{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>"},
これは私が必要とするものです。しかし、markers:
の中の変数を使用すると、動作しません。
私はこのようなJSに警告されてきたコードを貼り付けます:予想通り
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();
}
});
});
すべてが動作します。私は何か間違っていると思いますが、それが何であるか把握できないようです。どんな助けでも大歓迎です!
あなたの 'adress_test'は間違いなく' Object'ですか? 'alert(typeof adress_test)'を実行してみてください。 – jabclab
php.net/json_encode – shesek
これはまだ文字列ですが、 'jQuery.parseJSON'はこれを処理してはいけませんか? –