当前位置: 首页 > 知识库问答 >
问题:

通过morris.js以线图显示站点访问的PHP

艾令秋
2023-03-14

我正在遵循这个教程:Codediesel尝试创建一个线图,它将显示每天在我的网站的某个页面上的浏览量。我建立了一个数据库,比如:

CREATE TABLE `pageviews` ( 
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `date` date NOT NULL, 
    `views` bigint(20) NOT NULL, PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1

我在表中有数据,3天,数据看起来如下:

array(3) { 
    [0]=> array(3) { 
        ["id"]=> int(3) 
        ["date"]=> string(10) "2015-06-19" 
        ["views"]=> int(49) 
    } 
    [1]=> array(3) { 
        ["id"]=> int(2) 
        ["date"]=> string(10) "2015-06-18" 
        ["views"]=> int(103) 
    } 
    [2]=> array(3) { 
        ["id"]=> int(1) 
        ["date"]=> string(10) "2015-06-17" 
        ["views"]=> int(18) 
    } 
}

我的问题是页面没有给我任何图,控制台会产生两个错误:

Uncaught TypeError: Cannot read property 'match' of undefined

Uncaught Error: Graph container element not found

我的morris javascript在页面呈现时如下所示:

Morris.Line({
    element: 'morris-line-chart',
    data: [{"id":3,"date":"2015-06-19","views":49},{"id":2,"date":"2015-06-18","views":103},{"id":1,"date":"2015-06-17","views":18}],
    xkey: 'cron_time',
    ykeys: ['Page Views'],
    labels: ['Page Views'],
    lineColors: ['#0b62a4'],
    xLabels: 'Date',
    smooth: true,
    resize: true
});
                       

如果没有呈现,则如下所示:

<div id="morris-line-chart">
    <?php
    $db = new PDO('mysql:host=localhost;dbname=**********;charset=utf8', '*********', '********'); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $stmt = $db->prepare("SELECT * FROM pageviews ORDER BY `id` DESC LIMIT 15");
    $stmt->execute();
    $row = $stmt->fetchAll(PDO::FETCH_ASSOC);
    ?>
    <script>
        Morris.Line({
            element: 'morris-line-chart',
            data: <?php echo json_encode($row);?>,
            xkey: 'cron_time',
            ykeys: ['Page Views'],
            labels: ['Page Views'],
            lineColors: ['#0b62a4'],
            xLabels: 'Date',
            smooth: true,
            resize: true
        });
    </script>
</div>

我不确定该把php放在哪里,当我把代码复制到这里时,我把它放在标签之间,但是我把它放在上面和下面,以尝试排除其他可能性。你看到什么东西能帮我把它弄好吗。我觉得我已经接近了,但我没能找到最后几个错误。我试图提供尽可能多的代码和细节,如果有一些你想看到的东西,我忘记了,请让我知道。

***编辑:

我修复了这个问题,我需要改变我的xkey和ykey使它工作,现在所有工作!

共有1个答案

谭勇
2023-03-14

将xkey更改为date,因为它与json数组相关,并且还将ykeys更改为

 类似资料:
  • 问题内容: 我在本地VM中的SharePoint 2013中具有以下网站: 当我从浏览器访问此文件时,它会提示我输入用户名和密码,然后工作正常。但是我正在尝试使用REST API在Python中执行相同的操作。我正在使用请求库,这就是我所做的: 但是我得到401。我不明白。我想念什么? 注意:我遵循了这篇文章http://tech.bool.se/using-python-to-request-d

  • 问题内容: 我有一个代码可以显示员工图表。 数据(名称,电话,照片等)存储在SQLServer中,并通过JSP显示。可以正常显示数据,但图像.jpg(存储在IMAGE = BLOB列中)除外。 顺便说一句,我已经显示了图像(请参见下面的代码),但是我不知道如何将其放在.css定义的区域中(也请参见以下代码),因为图像是通过resultSet被加载到浏览器的整个页面中。 有谁知道我如何“构图”图像?

  • 使用OpenSUSE v15.2, Apache. 使用zypper安装了PHP-FPM。遵循本网站上的说明:https://en.opensuse.org/SDB:Apache_FastCGI_and_PHP-FPM_配置 我重新启动了Apache和PHP-FPM。但是,网站未加载到浏览器中。 我得到HTTP错误502。 #####################################

  • 问题内容: 我有个问题。我不知道如何通过单击JButton显示图像。 我有一个可以显示和隐藏图像的类: 我正在使用MVC,所以我想在我的控制器地图中使用JButton的代码,但是我不知道该怎么做。 单击按钮保持器时需要显示图像。 问题答案: 就像别人说的一样,总是用来显示图像。这样,很容易在需要时添加/删除它们,而不是绘画。此外,在您的代码中您正在重写,因为如果所讨论的组件具有一个,我们希望重写各

  • Morris.js 是一个轻量级的 JS 库,使用 jQuery 和 Rapha&euml;l 来生成各种时序图。

  • 我在通过Microsoft Graph API访问我的office 365帐户时遇到了一个(或两个)问题。 第一个问题是我有一个java程序,它试图列出office365订阅中的所有用户。我打电话给,但返回。 在应用注册中,我添加了权限,包括 、 对委派权限和应用权限。 我也尝试使用图形资源管理器,但是当我输入使用我的帐户时,它仍然使用内置的图形用户,并且不显示我的应用程序登录信息。不确定这些是否

  • 我刚刚为Github repo创建了一个Wiki,并将其克隆到我的桌面上。只有使用进行克隆的选项,这意味着每次我尝试推送git时,都会要求我输入用户名和密码。 在Github Wiki中,有什么方法可以像我在所有标准回购中一样使用SSH吗? 我查看了 Wiki 帮助,但在那里找不到任何东西。 顺便说一句,我在吉特哈布中使用了2FA。

  • 如何通过RTSP访问多个摄像机并在Web上显示它们? 我有3个IP摄像机安装,连同它是一个网络客户端,我可以通过他们给我的IP查看。它是一个HTTP页面,我可以在那里查看安装的流式摄像机。 我发现我也可以通过VLC播放器对相机进行单独的流式播放。 当我在我的vlc上键入url时,im被请求使用rtsp身份验证。完成表单后,我可以在我的VLC上播放视频。 我的问题是,给定上面的URL,我如何在我的自