【发布时间】:2012-12-13 00:10:49
【问题描述】:
我正在尝试将 ajax 源与 Datatables 一起使用,但在执行过程中遇到了一些错误。以前 Ajax 没有与 Datatables 一起使用,它们工作正常,但在尝试使用 Ajax 和 JSON 时出现了一些错误。
我收到的错误如下:
未捕获的类型错误:无法读取未定义的属性“长度”
编辑:直接在此文本下方使用修改后的代码后,此错误不再存在,但 DataTables 仍然损坏(没有搜索、分页、排序等...)。有一个活生生的例子可能会有所帮助,所以试试这个网站:fogest.com/test
这里是页面加载时创建表格的代码:
$(document).ready(function() {
$('#trades').dataTable( {
"sDom": "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>",
"sPaginationType": "bootstrap",
"bProcessing": true,
"bServerSide": true,
"aoColumns": [
{ "mData": "id" },
{ "mData": "Minecraft_Username" },
{ "mData": "Block_Name" },
{ "mData": "Quantity" },
{ "mData": "Cost" },
{ "mData": "Trade_Status" },
],
"sAjaxSource": "test.php"
} );
} );
而 sAjaxSource test.php 包含以下内容:
<?php
$tableName = "mctrade_trades";
$result = mysql_query("SELECT `id`, `Minecraft_Username`, `Block_Name`, `Quantity`, `Cost`, `Trade_Status` FROM $tableName");
$data = array();
while ( $row = mysql_fetch_assoc($result) )
{
$data[] = $row;
}
header("Content-type: application/json");
echo json_encode( $data );
?>
test.php 的输出:
[{"id":"1","Minecraft_Username":"fog","Block_Name":"DIAMOND_PICKAXE","Quantity":"1","Cost":"100","Trade_Status":"1"},{"id":"2","Minecraft_Username":"fog","Block_Name":"DIAMOND_PICKAXE","Quantity":"1","Cost":"1002","Trade_Status":"1"},{"id":"3","Minecraft_Username":"fog","Block_Name":"DIAMOND_PICKAXE","Quantity":"1","Cost":"1035","Trade_Status":"1"},{"id":"4","Minecraft_Username":"fog","Block_Name":"DIAMOND_PICKAXE","Quantity":"1","Cost":"1035","Trade_Status":"1"},{"id":"5","Minecraft_Username":"fog","Block_Name":"DIAMOND_PICKAXE","Quantity":"1","Cost":"100","Trade_Status":"2"},{"id":"6","Minecraft_Username":"fog","Block_Name":"DIAMOND_PICKAXE","Quantity":"1","Cost":"100","Trade_Status":"2"},{"id":"7","Minecraft_Username":"fog","Block_Name":"DIAMOND_PICKAXE","Quantity":"1","Cost":"10000","Trade_Status":"2"}]
表格已正确生成,但由于此错误,有文字说“表格正上方正在处理,您无法使用数据表的任何功能,例如搜索。
这是使用上述 JSON 的表格的图像:
我假设错误出现在我的 JSON 输出中,但我不完全知道它有什么问题,也不知道我应该做什么来修复它。我是 Web 开发的新手,实现 Datatables 的学习曲线相当不错!
【问题讨论】:
-
如果删除数据表配置中的
"sAjaxDataProp": "",行会怎样?你仍然遇到同样的错误吗? -
@TanzeelKazi 删除该行时似乎没有任何反应。我已经更新了我的帖子以显示我正在使用的新 JS,但现在不是任何错误,而是现在 DataTable 功能似乎不起作用。分页消失了,搜索、排序等现在都不起作用了,只是没有错误来解释为什么了。如果它有帮助,这里是我的站点链接,您可以在其中查看测试:fogest.com/test/index.php
标签: json datatables