Javascript 图表不从 mysql 填充数据

标签 javascript php mysql

我正在尝试查询一个 mysql 表以获取信息以使用数据来填充图表,但我得到一个 x 轴,其中“服装未定义”横跨它并且没有填充条形图。

我正在使用以下脚本来查询表 服装.php:

    if($_GET['action'] == 'clothingOrdered' && $_GET['id']){
$uid = $_GET['id'];

$sql = "SELECT clothing, orders FROM clothingOrder WHERE userid = '$uid'";
$query = mysqli_query($db_conx, $sql);
if($query){
$data = array();
foreach($query as $row){
$data[] = $row;

}

print json_encode($data);

}else{
echo mysqli_error($db_conx);

}



}else{
print 'not good';

}

这会产生:

[{"clothing":"tshirt","orders":"4"},{"clothing":"jeans","orders":"7"},{"clothing":"hats","orders":"34"},{"clothing":"dresses","orders":"12"},{"clothing":"jackets","orders":"27"},{"clothing":"毛衣","订单":"23"}]

图形区域:

<canvas id="myChart" width="400" height="400"></canvas>

数据的Js文件:

 $(document).ready(function(){
var id = $('#intro').data('id');

    $.ajax({
        url: '../php_parsers/clothing.php?action=clothingOrdered&id='+id,
        method: "GET",
        success: function(data) {
            console.log(data);
            var clothing = [];
            var orders = [];

            for(var i in data) {
                clothing.push("Clothing " + data[i].clothing);
                orders.push(data[i].orders);
            }

            var chartdata = {
                labels: clothing,
                datasets : [
                    {
                        label: 'Clothing ordered',
                        backgroundColor: 'rgba(200, 200, 200, 0.75)',
                        borderColor: 'rgba(200, 200, 200, 0.75)',
                        hoverBackgroundColor: 'rgba(200, 200, 200, 1)',
                        hoverBorderColor: 'rgba(200, 200, 200, 1)',
                        data: orders
                    }
                ]
            };

            var ctx = $("#myChart");

            var barGraph = new Chart(ctx, {
                type: 'bar',
                data: chartdata
            });
        },
        error: function(data) {
            console.log(data);
        }
    });
});

我的图表所在的页面中还包含以下脚本:

        <script   src="https://code.jquery.com/jquery-3.1.1.min.js"   integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="   crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.bundle.min.js"></script>

欢迎任何反馈。谢谢。

最佳答案

确保为 AJAX 请求设置数据类型参数。

$.ajax({
    url: '../php_parsers/clothing.php?action=clothingOrdered&id='+id,
    method: "GET",
    dataType: "json",
    success: function(data) {
        // ...
    },
    error: function(data) {
        console.log(data);
    }
});

关于Javascript 图表不从 mysql 填充数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45777824/

相关文章:

javascript - 无法定位悬停/鼠标悬停 css 更改

javascript - 如何创建一个 Kendo UI jQuery kendoDropDownList 仍然允许用户输入?

php - .htaccess 使用 GET 参数重定向

php - 显示每个 parent 的所有 child

php - 从mysql表到多维数组

javascript - 将组件重新渲染到已渲染的容器无法按预期工作?

PHP isset 不适用于复选框

php - 计算 Laravel 中的重复列

mysql - 获取每个对话的收件人 ID

javascript - 如何在express中使用sequelize检索用户帖子?