莫里斯图未更新

2023-12-12

我的更新有问题morris.js条形图。

当页面加载时,我有以下函数,它运行良好并创建了一个漂亮的图表:

$(document).ready(function() {
    if($('.projectViewTotal').length) {
        chart = Morris.Bar({
          element: 'LastIncome',
          data: [
              { y: '04-02-2014', a: 3 },
              { y: '04-03-2014', a: 10 },
              { y: '04-04-2014', a: 5 },
              { y: '04-05-2014', a: 17 },
              { y: '04-06-2014', a: 6 }
            ],
          xkey: 'y',
          ykeys: ['a'],
          labels: ['Visits']
        });
    };
});

然后在一些用户操作之后,我通过 ajax 获取新数据并想要更新我的图表,但不幸的是更新后图表中没有显示任何数据,标签只是undefined。我也通过控制台没有收到任何错误。

然后我像这样更新图表:

var response = $.parseJSON(content);
console.log(response);
chart.setData(response.jsString);

当我 console.log 我的 ajax 答案时,我有这个数据结构,例如:

Object {jsString: "[ { y: '2014', a: 3505},{ y: '2013', a: 0},{ y: '2012', a: 0},{ y: '2011', a: 0} ]", sort: "getLastIncome"}

但正如我所说,我只是得到未定义的标签和内部没有数据的图表。

如果我使用chart.setData()宽度硬编码示例数据一切都工作正常。所以它一定是我从中得到的字符串response.jsString,但我已经用过$.parseJSON在回调上,所以我真的不知道问题可能出在哪里。

您知道错误可能出在哪里吗?谢谢你!

这是我的服务器端 php 代码:

$ausgabeJS = "[ ";
$amount = count($data);
$i = 1;
foreach ($data as $key => $value) {
    if($i < $amount) {
       $ausgabeJS .= "{ y: '".$key."', a: ".$value."},";
    } else {
       $ausgabeJS .= "{ y: '".$key."', a: ".$value."}";
    }
    $i++;
}
$ausgabeJS .= " ]";
$responseArray = array(
   "jsString" => $ausgabeJS,
   "sort" => $method
 );
$result = json_encode($responseArray);

SOLUTION

就像 JTG 建议的那样,我必须更改我的服务器端代码,以创建一个numeric array代替string。这是更新后的代码:

$data_array = array();
foreach ($data as $key => $value) {
   $ar = array(
      "y" => $key,
      "a" => $value
   );
   array_push($data_array, $ar);
}
$responseArray = array(
   "jsString" => $data_array,
   "sort" => $method
);
$result = json_encode($responseArray);

Your response.jsString仍然是一个字符串,这不是可接受的参数setData函数(它必须是哈希数组的数组)。

不幸的是,你无法解析 JSONjsStringstring 因为你的键不是字符串(这是 JSON 的要求)所以让你的键为字符串,就像在你的服务器端一样

{jsString: '[{"y": "2014", "a":2505}, {"y": "2014", "a":2505}, {"y": "2014", "a":2505}]', sort: "getLastIncome"}

然后您应该能够将数据添加到图表中

chart.setData($.parseJSON(response.jsString));

如果这不起作用请告诉我

编辑:好的,我们有两个选择。

首先,您可以将 php 代码更改为

$data_return = [];
foreach ($data as $key => $value) {
    array_push($data_return, array("y" => $key, "a" => $value));
}

$responseArray = array(
   "jsString" => $data_return,
   "sort" => $method
 );
$result = json_encode($responseArray);

我不确定这是否有效,我认为值得一试,因为您没有构建一个必须解析两次的字符串。

但如果这不起作用,您始终可以按照我最初的建议,将哈希数组的键转换为字符串本身,如下所示:

foreach ($data as $key => $value) {
    if($i < $amount) {
       $ausgabeJS .= "{ 'y': '".$key."', 'a': ".$value."},";
    } else {
       $ausgabeJS .= "{ 'y': '".$key."', 'a': ".$value."}";
    }
    $i++;
}

注意周围额外的单字符串引号y and a。现在您正在构建的字符串是正确的 JSON。现在您应该能够做到这一点。

var response = $.parseJSON(content);
console.log(response);
chart.setData($parseJSON(response.jsString));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

莫里斯图未更新 的相关文章

  • 当没有数据时,空 json 对象而不是 null -> 如何使用 gson 反序列化

    我正在尝试使用 Google 的 gson 库解析 json 数据 但 json 数据表现不佳 当一切正常时 它确实看起来像这样 parent child one some String child two 4711 child one应该
  • JQuery 命名空间 + 通用实用函数的最佳实践

    目前有哪些 经验法则 为了实施JQuery 命名空间托管通用实用函数 我有许多 JavaScript 实用方法分散在各个文件中 我想将它们合并到一个 或多个 命名空间中 最好的方法是什么 我目前正在研究两种不同的语法 按优先顺序列出 JQu
  • 页面中的所有 css 类都使用 js

    我希望能够获取页面上所有CSS文件的所有类名 是否存在任何现有的可能性 或者我必须自己阅读并解析它 浏览器没有api吗 也许是重复的请求 如何使用 JavaScript 读取 CSS 规则值 https stackoverflow com
  • 防止按住 Shift 键时按下按键

    I m trying to prevent certain keys from being entered into an input box but only if that particular key is pressed whils
  • 如何将一个div的内容克隆到另一个div

    我想使用jquery克隆将选定div的内容复制到另一个div 但我不想将它附加到任何地方 我的意思是 当我们用 jquery 克隆一个 div 时 如果我错了 请纠正我 我们必须设置它的位置 它将动态创建一个显示的新分区 但我想获取所选di
  • 在 powershell 3 中美化 json

    给定一个标准 json 字符串值 jsonString baz quuz cow moo cud foo bar 我怎样才能让这一切都漂亮的换行符 最好没有强力正则表达式 到目前为止我发现的最简单的方法是 jsonString Conver
  • innerHTML 中的 href [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我试图在innerHTML 中创建href 但出现错误或无法正常工作 我想从API制作一个数据 可以点击它而不是复制并将其放入浏览
  • 如何使 superfish 下拉菜单响应式?

    我正在使用带有骨架框架的 superfish 下拉菜单 我希望它也能在手机上运行 默认情况下 它显示下拉项目 但它将鼠标悬停在其下方的项目上 我想以某种方式拥有它 以便它将父项推到它下面 有什么解决办法吗 这是一个更好的答案 我能够将 Su
  • 如何在 jQuery 中获取选择框选项值

    如果我有这样的代码 如何获取 jQuery 中选项选择框的值
  • JavaScriptSerializer 类是否已弃用?

    The MSDN 文档 https msdn microsoft com en us library system web script serialization javascriptserializer v vs 110 aspxJav
  • 普通 JSON 到 GraphSON 格式

    我有两个问题 我在哪里可以真正找到 GraphSON 文件的基本格式 保证 gremlin 控制台成功加载 我正在尝试将 JSON 大约有 10 20 个字段 转换为另一个可以由 gremlin 查询的文件 但我实际上找不到有关 graph
  • Flask - 如何从 JSON GET 请求获取参数

    我有一个发出以下 GET 请求的客户端 api GET tasks 5fe7eabd 842e 40d2 849e 409655e0891d 22task 22 22hello 22 22url 22 22 tasks 5fe7eabd 8
  • Google 登录回调 - 获取姓名和电子邮件

    我试图在登录时将基本的谷歌帐户信息 姓名 电子邮件 ID 捕获到数据库中 我通过为他们的个人资料信息设置变量并通过 AJAX 更新数据库来做到这一点 参见下面示例中的变量 if authResult access token The use
  • 当多个元素具有相同的 ID 值时,jQuery 如何工作?

    我从 Google 的 AdWords 网站获取数据 该网站有多个具有相同元素的元素id 您能否解释一下为什么以下 3 个查询没有得到相同的答案 2 现场演示 http jsfiddle net P2j3f 1 HTML div span
  • jquery .load() 不起作用

    我似乎无法让 jquery 的 load 函数工作 一定是我缺少的一些简单的东西 基本上只是试图将 more html 的片段加载到 index html 中 索引 html
  • Android.system.ErrnoException:isConnected失败:ECONNREFUSED(连接被拒绝)

    我使用Java连接MySQL和Json将数据发送到android 当我通过URL地址将数据从Java发送到json时 http 192 168 1 221 9999 rentalcar service category getAllManu
  • 最有用的 jQuery 原生 API 函数

    前 5 10 个最常用的 jQuery 本机 API 函数是什么 请不要建议 jQuery 函数本身 因为毫无疑问这是最常用的函数 如果可能的话 还请提供它们所涵盖的场景 提出这个问题的原因是我尝试创建一个类似 jQuery 的 API充足
  • JavaScript 附加和前置与 jQuery 附加和前置

    QA Style 我最近读了一篇文章 里面说JavaScript已经实现了append and prepend受 jQuery 启发的方法 这对我来说是一个新知识 因为据我所知 要附加一个元素 我必须使用element appendChil
  • 我可以使用 javascript 生成 JSON 文件吗?

    我想在域 example1 com 上创建一个页面 并获取 解析另一个域 example2 com json json 上的 JSON 文件 可以使用 javascript 生成 json 文件 在 example2 com 上 吗 我认为
  • 如何在 .NET 中自定义 JSON 枚举的反序列化?

    我有以下示例 C 代码 它是使用 svcutil exe 应用程序从 xsd 自动生成的 DataContract public enum Foo EnumMember Value bar Bar 1 EnumMember Value ba

随机推荐

  • Android 实时 Google 地图位置跟踪

    我正在开发一款 Android 应用程序 玩家可以根据自己的位置在手机上实时战斗 在 Google 地图上 您可以通过一个小蓝点看到您所在的位置 面向的方向以及正在移动的位置 我的问题是 如何将类似的东西集成到我的应用程序中 以便当玩家移动
  • Python:如何使用 Python 访问 mp3 文件的元数据? [复制]

    这个问题在这里已经有答案了 假设我想看看艺术家的名字 或者添加BPM信息 我可以使用哪些 Python 工具来完成此任务 有一个模块叫Python ID3正是这样做的 如果您使用的是 Debian Ubuntu 机器 则其软件包名称为pyt
  • 如何在Spring Data中进行Mongo聚合查询?

    这是我第一次在 Java 中使用 Mongo 这个聚合查询遇到了一些问题 我可以在 Mongo for Spring 中执行一些简单的查询 Query我的存储库接口中的注释扩展了MongoRepository
  • Python:在模块和类之间共享全局变量

    我知道在 Python 中可以跨模块共享全局变量 然而 我想知道这在多大程度上是可能的以及为什么 例如 全局mod py x None mid access mod py from global mod import class delta
  • 来自带有构造函数参数的 lambda 的 RelayCommand

    如果在 XAML 文件中 我将一个 Button 绑定到以下类中的 Command 则单击该 Button 不会导致执行 DoIt class Thing public Thing Foo p1 Command new RelayComma
  • 在正则表达式 python 中使用变量

    值得离开的是 这是我学习 Python 的第二天 而且我对这门语言不是很专业 任何低水平且易于理解的建议将不胜感激 我想在 python 的正则表达式中使用变量 我读过这个问题如何在正则表达式中使用变量 没有任何运气的答案 Code imp
  • 如何对数字进行四舍五入

    我如何能够将这些数字四舍五入到小数点后两位 这些数字全部存储在由网络抓取工具输出的变量中 4 7532 4 7294 4 7056 4 6822857142857 4 65868 4 63522 4 6119866666667 4 5889
  • 修复 IE9 中的 jQuery 拆分器

    Update 这个问题是关于多窗格分割器除了 IE9 之外 它在所有浏览器中都运行良好 右窗格子项的宽度不会随着窗口大小的调整而相应调整 在我的应用程序的上下文中 我还必须使用 setTimeout 0 延迟将右窗格分割方法放在不同的 ja
  • 使用 python selenium chromedriver 从源中选择隐藏选项值

    我正在阅读 Docx 文件 这里是link 解析其中的一些文本 然后使用 python selenium 绑定和 chrome driver 我尝试单击源中的隐藏选项值 driver page source 我知道它无法选择 到目前为止 这
  • 帮助定义全局名称

    My Code def A a A print a return def B print a in B return 当 B 输入解释器时我得到 Traceback most recent call last File
  • RoR - 如何删除 Rails 4.1.1 版本?

    我是 RoR 新手 我尝试遵循 Micheal Hartl 的 Ruby on Rails 教程 在开始本教程之前 我已经提前设置了所有内容 并将 Rails 版本更新为 4 1 1 一切都运行良好 直到教程中我需要有最高 4 0 5 版本
  • Openmp 代码的推力当量

    我尝试在 open mp 中并行化的代码是蒙特卡罗 可归结为如下所示 int seed 0 std mt19937 rng seed double result 0 0 int N 1000 pragma omp parallel for
  • 如何将整数数组转换为树?

    这里有 100 个数字 每行 10 个 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
  • 如何更改 WooCommerce 中的帐单地址字段标签

    在我的设计中 我有非标准计费字段标签和标记 例如 城镇 城市 应为 省 我使用过WOO文档 并过滤woocommerce billing fields 它适用于类名 占位符 创建新字段 但我无法更改标签 out arr billing ci
  • const 引用数据成员绑定到临时初始化构造函数中的引用

    考虑以下代码 include
  • 当多次调用外部函数时,php 中的嵌套函数会引发异常

    以免假设我有以下内容 function a function b a pass a error 为什么在第二次调用中抛出异常并且它说 cannot re declare function b 我认为每个函数调用都会创建一个新的活动记录 它包
  • 是否可以更改 h:outputStylesheet 和 h:outputScript 使用的 /resources 文件夹名称

    引用css文件和js文件时是否需要给文件夹名称 resources h outputStylesheet and h outputScript 因为当我给出文件夹名称 assets 而不是 resources 时 这些文件不会加载 这就是我
  • 将 iPad 应用程序转换为 iPhone 应用程序?

    我编写了一个基于选项卡的 iPad 应用程序 效果很好 我从来没有打算让它成为一个 iPhone 应用程序 因为它显示的内容确实不适合这么小的屏幕 然而 我收到了很多要求该应用程序也与 iPhone 兼容的请求 有人可以向我指出一些文档的方
  • Javascript 无缘无故地将浮点数转换为整数

    我编写了一个函数 它的行为根据其参数的数字类型而有所不同 整数或浮点数 使用这个问题中的一些代码如何检查一个数字是浮点数还是整数 很容易检测是否浮动 但后来我偶然发现了 javascript 强制转换的情况1 0 to 1如果您使用该号码调
  • 莫里斯图未更新

    我的更新有问题morris js条形图 当页面加载时 我有以下函数 它运行良好并创建了一个漂亮的图表 document ready function if projectViewTotal length chart Morris Bar e