- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力获取数据以使用我的 mySQL 数据库中的数据来填充我的 MorrisJS 条形图。谁能帮忙让它显示在我的条形图上?
下面是我当前的代码和页面。
<?php
$link = mysql_connect('127.0.0.1', 'root', 'password')
or die('Could not connect: ' . mysql_error());
mysql_select_db('database') or die('Could not select database');
$dataArray=array();
//get data from database
$sql="SELECT * FROM table";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
if ($result) {
while ($row = mysql_fetch_assoc($result)) {
$Version=$row["Version"];
$Live=$row["Live"];
$Preprod=$row["Preprod"];
//add to data areray
$dataArray[$Version]=$count;
}
}
?>
index.php(主页)
div id="morris-bar-chart"></div>
<?php include ('database.php') ?>
<script src="../js/morris-data.js"></script> <----- script on index.php page linking to morris chart page.
morris.js 页面
Morris.Bar({
element: 'morris-bar-chart',
data: [{
while ($row = mysql_fetch_assoc($result)) {
y:<?=$row['versions']?>,
Live:<?=$row['Live']?>,
PreProd: <?=$row['Preprod']?>
}, {
],
xkey: 'y',
ykeys: ['Live', 'PreProd'],
labels: ['Live', 'PreProd'],
hideHover: 'auto',
resize: true
});
希望这一切都有意义。提前致谢。
最佳答案
我认为时间是问题所在。
Morris 期望数据按行显示,例如{ y: '2007', a: 75, b: 65 },
我调整了morris.js
中的PHP代码部分编写一些脚本。
通常,您不能在 JS 文件中执行 PHP。除非,当您向服务器添加规则时,该 JS 文件也应由 PHP 处理。
获取数据的正常方法是对 PHP 脚本进行 AJAX 查询,该脚本返回 json_encoded($result)
.然后用 setData()
将它添加到 Morris功能。
但这也应该有效:通过 PHP 生成 JS 文件。您可以重命名 morris-data.js
至 morris-data.js.php
.该文件需要 <?php header("Content-type: application/javascript"); ?>
在顶部。然后调整你的<script
include 以匹配新文件名。
文件 morris-data.js.php
<?php header("Content-type: application/javascript"); ?>
Morris.Bar({
element: 'morris-bar-chart',
data: [
<?php
while ($row = mysql_fetch_assoc($result)) {
// output a line like:
// { y: '123', Live: 123, PreProd: 123 },
sprintf(
"{ y: '%s', Live: %s, PreProd: %s },",
$row['version'],
$row['Live'],
$row['Preprod']
);
}
?>
],
xkey: 'y',
ykeys: ['Live', 'PreProd'],
labels: ['Live', 'PreProd'],
hideHover: 'auto',
resize: true
});
应该呈现类似的东西(另见 bar chart example )
data: [
{ y: '1.2.3', Live: 20, PreProd: 23 },
{ y: '1.2.4', Live: 30, PreProd: 24 },
{ y: '1.2.5', Live: 40, PreProd: 25 },
{ y: '1.2.6', Live: 50, PreProd: 26 }
],
(我不确定 database.php
文件的最后一部分应该做什么。也许您可以删除它(if($result)
中的代码)。但也许它用于计算..)
关于javascript - 使用 PHP 和 mysql 的 morrisJS 条形图人口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34293805/
我的网页上有两个 DIV 元素。如果 DIV A 的内部 HTML 是通过不受我控制的第三方脚本添加的,我想删除 DIV B 的内部 html。 在 JS 中实现这一目标的最佳方法是什么? 最佳答案
我整个周末都在看这段代码。我知道有数据,我可以通过其他查询提取它,但 GridView 不会显示和填充。有什么建议吗? string sqlSelection =
所以表格在页面上 然后我使用 AJAX 返回数据 $.ajax({ type: 'POST', url: "ticketAjax.php", data: '&m=swapTi
我有一个表格 View Controller ,我正在使用 Storyboard设计它。原型(prototype)单元非常基本,它只有两个标签。姓名标签和日期标签。 当我运行程序时,样式就在那里(字体
我正在尝试填充不可变 JS 映射。给定一个字段数组和一个表单,例如 {form: 'Register', fields: ['name','firstname']} 我想得到类似的东西: { form
我有两个 Mongoose 模型: 1-事件模型: eventSchema = new mongoose.Schema({ name: { type: String, requir
我想以编程方式填充 WPF ListView 。我认为我接近答案但尚未解决,我使用一种方法来填充 ListView , ListView 在 XAML 中看起来像这样
我有以下场景: 用户可以登录网站。用户可以添加/删除投票(有两个选项的问题)。任何用户都可以通过选择任何选项来对民意调查发表意见。 考虑到上述情况,我有三个模型 - Users Polls Optio
这个问题在这里已经有了答案: Capture __LINE__ and __FILE__ without #define (2 个答案) 关闭 3 年前。 所以我有一个要评估结果的函数,如果结果失败
我有一个使用 innerHTML 在表中添加行的函数: function addRowToTable(tblParam) { var tbl =document.getElementById(tb
我是一名优秀的程序员,十分优秀!