我正在尝试对Datatables使用ajax源,并且遇到了一些错误。以前Ajax没有和Datatables一起使用,并且它们工作正常,但是在尝试使用Ajax和JSON时我有一些错误。Datatables:Uncaught TypeError:无法读取未定义的属性'长度'
我recieving错误是:
Uncaught TypeError: Cannot read property 'length' of undefined
编辑:在直接使用下面这段文字的修改后的代码,这个错误不再出现,但数据表仍破(无觅处,分页,排序等...)。它可以帮助有一个活生生的例子,那么试试这个网站: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功能无法正常工作。分页已经结束,搜索,排序等全部不起作用,只是没有错误来解释为什么了。 如果它有帮助,这里是我的网站链接,你可以看到测试: http://fogest.com/test/index.php – ComputerLocus