javascript - 无法在一个 HTML 页面上显示两个 Chart.js

标签 javascript html

我试图在单个 HTML 页面上显示更多 Chart.js 图形,但它不起作用。我尝试了几种方法,但都没有取得积极的结果。我将附上我的代码:

@extends('layouts.app')

<!DOCTYPE html>
<html lang="zxx">
@section('content')
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.js"></script>

        <script src="https://cdn.jsdelivr.net/npm/patternomaly@1.3.2/dist/patternomaly.min.js"></script>


    @php
    $dates = '';
    $rates = '';
    $graph_data = \App\Helpers\NjHelper::bettingData();
    foreach ($graph_data as $item){
    $dates .= "'".$item->date."',";
    $rates .= $item->bankers.",";
    }
    @endphp

    @php
    $datesValue = '';
    $ratesValue = '';
    $graph_data_value = \App\Helpers\NjHelper::bettingDataValueBets();
    foreach ($graph_data_value as $item){
    $datesValue .= "'".$item->date."',";
    $ratesValue .= $item->value_bet.",";
    }
    @endphp

<script>
$(function () {
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
    type: 'line',
    data: {
        labels: [{!! $dates !!}],
        datasets: [{

            label: 'Bankers Profit Per Day',
            data: [{!! $rates !!}],

            borderColor: [
                'rgba(243, 156, 18, 1)',
                'rgba(243, 156, 18, 1)',
                'rgba(243, 156, 18, 1)'
            ],
            borderWidth: 3
        }]
    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero: true
                }
            }]
        },
        legend: {
            labels: {

                fontSize: 20
            }
        }
    }
});



var ctx_2 = document.getElementById(chartValueBets).getContext('2d');
var chartValueBets = new Chart(ctx_2, {
    type: 'line',
    data: {
        labels: [{!! $datesValue !!}],
        datasets: [{

            label: 'Value Bets Profit Per Day',
            data: [{!! $ratesValue !!}],

            borderColor: [
                'rgba(243, 156, 18, 1)',
                'rgba(243, 156, 18, 1)',
                'rgba(243, 156, 18, 1)'
            ],
            borderWidth: 3
        }]
    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero: true
                }
            }]
        },
        legend: {
            labels: {

                fontSize: 20
            }
        }
    }
});
});
</script>
</head>
<div class="col-lg-12 col-xl-4">


        <canvas id="myChart" width="400" height="400"></canvas>
        <canvas id="chartValueBets" width="400" height="400"></canvas>
        </div>
@endsection
</html>

我想要显示的数据来自一些 SQL 查询,这就是为什么我在图表之前有这两个 @php 部分的原因。

只有第一个图表出现在我的 HTML 页面上,即名称为“myChart”的图表。

有谁知道我可以做什么才能让第二个也出现?

最佳答案

在下面一行:

var ctx_2 = document.getElementById(chartValueBets).getContext('2d');

“chartValueBets”两边缺少引号。如果添加引号,它应该可以正常工作。

关于javascript - 无法在一个 HTML 页面上显示两个 Chart.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60536143/

相关文章:

javascript - 离线 HTML5 应用程序和跨站点通信

javascript - 如何更改 JS 中的字体大小以适合其容器?

javascript - 如何删除最后(动态)创建的元素?

javascript - 根据最新数组创建具有唯一 id 的新 DOM

javascript - 如何清除React中的TextField?

javascript - 无法在 Express JS 中设置单独的路由文件

html - 在行下方添加空格和边框

javascript - 如何使用 jquery 将个人信息从选择选项 ListView 传递到特定输入字段

javascript - 如何在 JavaScript 中使用 switch

html - 位置绝对div坏了