簡體   English   中英

未捕獲的類型錯誤:無法讀取未定義的屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM