2011-09-14 4 views
1

への挿入ヘルプ。私はajaxを呼び出し、json配列で返す。だから、私はそれを繰り返し、アドレスとhtml(htmlは複数の配列要素の連結された文字列)だけを格納しなければなりません。は、JavaScriptのArrayオブジェクトに追加すると、私は次のコードを持つコマンド

var markers = new Object(); 
$.post(
    custom.ajaxurl, 
    { 
     action:'get_current_events' 
    }, 
    function(jdata) { 
     $.each(jdata, function(i, data){ 
      markers += "{ 'address': '" + data.address + "', 'html': '" + data.html + "'},"; 
     }); 

     $('#map_canvas').gMap({markers: markers.marks ,address: jdata[0].address, zoom: 10 }); 
+0

あなたはJDATAが何であるかを投稿できます戻ってきた? – frosty

答えて

1

markersは、オブジェクトの配列のようだ:

は、だからここに私の完全なコードです。私はなぜあなたが文字列の連結を行っているのか分かりません。あなたの応答から必要な情報を抽出するために$.map[docs]を使用することができます。

$.post(custom.ajaxurl, {action:'get_current_events'}, function(jdata) { 
     var markers = $.map(jdata, function(data) { 
      return {address: data.address, html: data.html}; 
     }); 
     $('#map_canvas').gMap({ 
      markers: markers, 
      address: jdata[0].address, 
      zoom: 10 
     }); 
}); 

MDN JavaScript GuideはJavaScriptに非常に良い紹介です。

1

あなたは、配列ではなく、オブジェクトや文字列を作成しようとしている:

var markers = []; //Empty array 

markers.push({ address: data.addres, ... }); 
0

あなたが行う必要があります(あなたがオブジェクトの配列を必要とする):

var markers = []; 
$.post(
    custom.ajaxurl, 
    { 
     action:'get_current_events' 
    }, 
    function(jdata) { 
     $.each(jdata, function(i, data){ 
      var marker = { address: data.address, html: data.html }; 
      markers.push(marker); 
     }); 

$('#map_canvas').gMap({markers: markers ,address: jdata[0].address, zoom: 10 }); 
関連する問題