[英]Uncaught type error: cannot read property of undefined
更新畫布圖表中的數據點時出現問題。 我收到此錯誤消息:
未捕獲的TypeError:無法讀取未定義的屬性'getTime'
我在response.msg
中收到的輸出是
[{label: 'Purok I', y:1},{label: 'Purok II', y:1},{label: 'Purok III', y:2}]
如果將其替換為response
則將成功呈現圖表。 但是,將響應傳遞給datapoints
會產生錯誤。 這是我的Javascript。 有什么幫助嗎?
$('#barangay-list').click(function() {
var barangay_id = $(this).val()
console.info(barangay_id)
$.ajax({
url: '../classes/main.php',
type: 'POST',
data: {
'population-chart': 1,
'barangay_id': barangay_id
},
async: true,
dataType: 'JSON',
success: function(response, data) {
var chart = new CanvasJS.Chart("chartContainer", {
theme: "light2",
zoomEnabled: true,
animationEnabled: true,
animationEnabled: true,
axisX: {
title: "Street Name",
gridThickness: .9,
lineThickness: .9,
titleFontSize: 14,
labelFontSize: 12,
},
axisY: {
includeZero: true,
title: "Number of Population",
gridThickness: .9,
lineThickness: .9,
titleFontSize: 14,
labelFontSize: 12
},
toolTip: {
shared: "true"
},
legend: {
cursor: "pointer",
itemclick: toggleDataSeries,
verticalAlign: "bottom",
horizontalAlign: "center"
},
data: [{
type: "spline",
showInLegend: true,
name: "Populaltion Number",
dataPoints: response.msg
}]
});
chart.render();
function toggleDataSeries(e) {
if (typeof(e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
e.dataSeries.visible = false;
} else {
e.dataSeries.visible = true;
}
chart.render();
}
},
// Error Handler
error: function(xhr, textStatus, error) {
console.info(xhr.responseText);
}
});
});
我通過這種關心的人的幫助解決了人們轉換具有不同數據類型的數組
刪除此代碼:
async: true,
dataType: 'JSON',
添加JSON.parse()和map函數
if(filename == "chart"){
$('#barangay-list').click(function(){
var barangay_id = $(this).val()
console.info(barangay_id)
$.ajax({
url: '../classes/main.php',
type: 'POST',
data:{
'population-chart':1,
'barangay_id': barangay_id
},
// async: true,
// dataType: 'JSON',
success: function(response,data){
let datapoints = (JSON.parse(response))
let result = datapoints.map(function(x) {
x.y = Number(x.y);
return x;
});
var chart = new CanvasJS.Chart("chartContainer", {
theme:"light2",
zoomEnabled: true,
animationEnabled: true,
animationEnabled: true,
axisX: {
title: "Street Name",
gridThickness: .9,
lineThickness: .9,
titleFontSize: 14,
labelFontSize: 12,
},
axisY :{
includeZero: true,
title: "Number of Population",
gridThickness: .9,
lineThickness: .9,
titleFontSize: 14,
labelFontSize: 12
},
toolTip: {
shared: "true"
},
legend:{
cursor:"pointer",
itemclick : toggleDataSeries,
verticalAlign: "bottom",
horizontalAlign: "center"
},
data: [{
type: "spline",
showInLegend: true,
name: "Populaltion Number",
dataPoints:
result
}]
});
chart.render();
function toggleDataSeries(e) {
if (typeof(e.dataSeries.visible) === "undefined" || e.dataSeries.visible ){
e.dataSeries.visible = false;
} else {
e.dataSeries.visible = true;
}
chart.render();
}
},
// Error Handler
error: function(xhr, textStatus, error){
console.info(xhr.responseText);
}
});
});
$.ajax({
url: '../classes/main.php',
type: 'POST',
data:{
'admin_dashboard':1
},
async: true,
dataType: 'JSON',
success: function(response,data){
$('#user_num').text(response.num_user)
$('#barangay_num').text(response.num_barangay)
$('#barangay_street_num').text(response.num_street)
$('#position_num').text(response.num_position)
},
// Error Handler
error: function(xhr, textStatus, error){
console.info(xhr.responseText);
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.