【问题标题】:Ajax won't retrieve the data from my scriptAjax 不会从我的脚本中检索数据
【发布时间】:2021-09-15 17:07:59
【问题描述】:

您好,所以我尝试使用 Ajax 从 .php 中检索数据以使用 Chart.JS 制作圆环图

这是我所拥有的(图例顺序中的值 1、2、3、4):

这是我的 Chart.JS 脚本:

// Set new defawult font family and font color to mimic Bootstrap's default styling
Chart.defaults.global.defaultFontFamily = 'Nunito', '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif';
Chart.defaults.global.defaultFontColor = '#858796';

$.ajax({
url:"./inc/pie_chart.inc.php",
method:"GET",
success:function(data)  {
console.log(data);
var appelsnum =[1];
var mailsnum =[2];
var anomaliesnum =[3];
var decnum =[4];

// Pie Chart Example
var ctx = document.getElementById("myPieChart");
var myPieChart = new Chart(ctx, {
  type: 'doughnut',
  data: {
    labels: ["Appels", "Mails", "Anomalies", "DEC"],
    datasets: [{
      data: [appelsnum, mailsnum, anomaliesnum, decnum],
      backgroundColor: ['#36b9cc', '#1cc88a', '#e74a3b', '#f6c23e'],
      hoverBackgroundColor: ['#2c9faf', '#17a673', '#a3281c', '#dbac32'],
      hoverBorderColor: "rgba(234, 236, 244, 1)",
    }],
  },
  options: {
    maintainAspectRatio: false,
    tooltips: {
      backgroundColor: "rgb(255,255,255)",
      bodyFontColor: "#858796",
      borderColor: '#dddfeb',
      borderWidth: 1,
      xPadding: 15,
      yPadding: 15,
      displayColors: false,
      caretPadding: 10,
    },
    legend: {
      display: false
    },
    cutoutPercentage: 80,
  },
});
},
});

这是我的“pie_chart.inc.php”文件(Ajax 正在检索的文件):

<?php
header('Content-Type:text/plain');

require_once('./loggedin.inc.php');
require_once('./db.inc.php');
require_once('./settings.inc.php');

$sql="SELECT SUM(appels_res) AS totalsumappelsmonth FROM resultats ORDER BY id DESC LIMIT 14";
$result = mysqli_query($conn, $sql);
$appelsnum = mysqli_fetch_assoc($result);
$appelsnum = $appelsnum['totalsumappelsmonth'];

$sql="SELECT SUM(mails_res) AS totalsummailsmonth FROM resultats ORDER BY id DESC LIMIT 14";
$result = mysqli_query($conn, $sql);
$mailsnum = mysqli_fetch_assoc($result);
$mailsnum = $mailsnum['totalsummailsmonth'];

$sql="SELECT SUM(anomalies_res) AS totalsumanomaliesmonth FROM resultats ORDER BY id DESC LIMIT 14";
$result = mysqli_query($conn, $sql);
$anomaliesnum = mysqli_fetch_assoc($result);
$anomaliesnum = $anomaliesnum['totalsumanomaliesmonth'];

$sql="SELECT SUM(dec_res) AS totalsumdecmonth FROM resultats ORDER BY id DESC LIMIT 14";
$result = mysqli_query($conn, $sql);
$decnum = mysqli_fetch_assoc($result);
$decnum = $decnum['totalsumdecmonth'];

$data=array();
$data[0]=$appelsnum;
$data[1]=$mailsnum;
$data[2]=$anomaliesnum;
$data[3]=$decnum;


$result->close();
$conn->close();

print json_encode($data);
?>

当我访问此页面时,它会返回给我的内容:

这些是必须在图表上的良好价值。 但是,我得到 1、2、3、4。

你知道如何解决这个问题吗?

感谢阅读 :) 问候。

【问题讨论】:

    标签: javascript php mysql ajax chart.js


    【解决方案1】:

    你得到 1,2,3,4 因为它们是硬编码的。尝试改变

    var appelsnum =[1];
    var mailsnum =[2];
    var anomaliesnum =[3];
    var decnum =[4];
    

    var appelsnum =[data[0]];
    var mailsnum =[data[1]];
    var anomaliesnum =[data[2]];
    var decnum =[data[3]];
    

    【讨论】:

      猜你喜欢
      • 2018-06-09
      • 2011-07-06
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 2020-08-03
      • 1970-01-01
      • 2022-08-14
      • 2021-09-01
      相关资源
      最近更新 更多