2016-01-11 46 views
1

試圖將數據從一個AJAX調用傳遞給jvectormap,我有when功能,使代碼的ajax光潔度負載通過數據

即我的問題後運行是,地圖是空的,我得到一個錯誤

Uncaught ReferenceError: postdata is not defined

這是代碼,我現在有

  $(document).ready(function() { 

      function ajax1() { 

       return $.ajax({ 
        url: "src/data.php?form_action=call-map", 
        type: "GET", 
        data: postdata, 
        dataType: "text", // the type of data that you're expecting back from the server 
        error: function(jqXHR, textStatus, errorThrown) { 
         $().toastmessage("showErrorToast", 
          "AJAX call failed: "+textStatus+" "+errorThrown); 
        }, 
        success: function(data) { 
         console.log(data); 
         //return false; 
        } 
       }); 

      } 

      $.when(ajax1()).done(function(a1){ 

       $('#world-map').vectorMap({ 
        map: 'world_mill_en', 
        backgroundColor: "transparent", 
        regionStyle: { 
         initial: { 
          fill: '#e4e4e4', 
          "fill-opacity": 0.9, 
          stroke: 'none', 
          "stroke-width": 0, 
          "stroke-opacity": 0 
         } 
        }, 

        series: { 
         regions: [{ 
          values: a1, 
          scale: ["#005aad", "#001d38"], 
          normalizeFunction: 'polynomial' 
         }] 
        }, 
        onRegionTipShow: function(e, el, code){ 
         el.html(el.html()+ '<br>Time Used: '+mapData[code]); 
        } 
       }); 
      }); 
     }); 

這爲t他將數據從ajax調用返回到php腳本

{"AF" : 10, "AX" : 22, "AL" : 5, "DZ" : 0, "AS" : 41, "AD" : 74, "AO" : 30} 

console.log(data);顯示我需要傳遞給jvectormap的所有數據。

+0

你有什麼'postdata'包含? –

+0

我不得不刪除該行,因爲我沒有向腳本發送任何東西 –

+0

console.log(a1)在完成的函數中顯示了什麼?如果它返回一個字符串,則需要將其轉換爲對象/數組。 – vol7ron

回答

0

我能夠使用此字符串中轉換數據類型來解決這個問題:

var a1 = JSON.parse(a1); 

感謝。

0

postdata變量未初始化(在一塊,你張貼在這裏的代碼!)更改此:

url: "src/data.php?form_action=call-map", 
type: "GET", 
data: postdata, 
dataType: "text", // the type 

這樣:

url: "src/data.php", 
type: "GET", 
data: "form_action=call-map", 
dataType: "text", // the type 

然而,如果變量 「POSTDATA」 有感覺你,告訴我們你在哪裏看重它。

+0

我刪除了我錯過的部分。我看到的問題是,我沒有正確地將返回數據從ajax傳遞到其他函數 –

+0

@ user2661296使用一個簡單的警報,在「when」函數添加「alert(a1)」時開始測試它並檢查您看到的值。我只是測試了你的「時間」,它的工作,但我不知道你期望在「a1」變量中有什麼結果。 – Baro

+0

在函數內部發出var後,我得到我需要的字符串 {「AF」:10,「AX」:22,「AL」:5,「DZ」:0,「AS」:41, 「AD」:74,「AO」:30} 但我的地圖還是空的,腳本告訴我沒有地圖數據來填圖 –