【问题标题】:"DataTables warning: Invalid JSON response" and "Error: Graph container element not found"“DataTables 警告:无效的 JSON 响应”和“错误:未找到图形容器元素”
【发布时间】:2019-06-16 18:50:47
【问题描述】:

我是bearpk.space 的开发者。在我的dashboard.php 页面(您无法访问,但其来源是here)上,我看到了这条错误消息,它在屏幕中间弹出:

DataTables 警告:表 id=dataTables-example - JSON 响应无效。有关此错误的更多信息,请参阅http://datatables.net/tn/1

开发者工具显示了这一点:

我不知道从哪里开始解决这个问题。我查看了 StackExchange 上的其他“未找到图形元素”问题,以及错误消息中的链接。

dataTables-example 这里有错吗?

【问题讨论】:

  • 您遇到两条独立的错误消息——一条来自 DataTables,一条来自 morris。我怀疑他们有相同的根本原因。为了帮助我们调试,请使用 Developer Tools 的 Network 选项卡,其中包含有关失败 XHR 的详细信息。
  • 这是错误显示的内容:imgur.com/a/cx0oU6timgur.com/a/8vOjIXQ

标签: javascript php html datatables morris.js


【解决方案1】:

您遇到两个独立的错误 - 一个来自 DataTables(增强型表格 jQuery 插件),另一个来自 morris.js(图形库)。

数据表

出现错误弹出窗口是因为您让 DataTables 从 ajax.php?content=playerList 加载必要的数据。但是,由于 PHP 错误消息,您的网络服务器没有返回有效的 JSON。 DataTables 将其作为 XHR 响应接收:

<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>/home1/bearlolz/public_html/ajax/ajax.php</b> on line <b>14</b><br />
{"data":[]}

由于在 JSON 开始之前存在垃圾,DataTables 无法解析响应并失败并显示错误消息。要么修复导致错误的 PHP 错误,要么使用 ini_set("display_errors", 0); 禁止 PHP 错误报告

morris.js

出现控制台错误是因为你在dashboard.php:

<?php $template->scripts(); ?>

注入 HTML:

<script src="bin/data/morris-data.js"></script>

执行morris-data.js,它尝试在具有id 值为morris-area-chartmorris-donut-chartmorris-bar-chart 的DOM 元素上创建图形。但是 HTML 中没有这样的元素,所以 morris 库会抛出错误,最终出现在控制台中。

【讨论】:

  • 嗨,你在谈论这个 php 错误消息:警告:在第 14 行的 /home1/bearlolz/public_html/ajax/ajax.php 中为 foreach() 提供的参数无效 {"data":[ ]}pastebin.com/3AAAPJR7是dashboard.php代码
  • @bigtoughguy 是的,那个错误信息。 DataTables 假设整个 XHR 响应是有效的 JSON,当然错误消息不是。所以 JSON 解析失败。
猜你喜欢
  • 1970-01-01
  • 2016-02-08
  • 2018-10-31
  • 2015-04-20
  • 2014-11-04
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 2014-07-04
相关资源
最近更新 更多