尝试从ajax调用向jvectormap
传递数据,我有when
函数,因此代码在ajax
完成加载后运行
我遇到的问题是地图是空的,我收到错误
未捕获的ReferenceError:未定义postdata
这是我目前的代码
$(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]);
}
});
});
});
这是从ajax调用到php脚本的返回数据
{"AF" : 10, "AX" : 22, "AL" : 5, "DZ" : 0, "AS" : 41, "AD" : 74, "AO" : 30}
的console.log(数据);显示我需要传递给jvectormap
的所有数据。
答案 0 :(得分: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”对您有意义,请告诉我们您重视它的位置。
答案 1 :(得分:0)
我能够通过使用以下方法转换字符串中的数据类型来解决问题:
var a1 = JSON.parse(a1);
感谢。