未捕获的类型错误:数据表
Posted
技术标签:
【中文标题】未捕获的类型错误:数据表【英文标题】:Uncaught TypeError: Datatables 【发布时间】:2019-12-08 07:18:36 【问题描述】:我正在尝试使用数据表列出表中的数据,但出现错误
“未捕获的类型错误:无法读取未定义的属性‘长度’”
我不知道为什么。感谢任何帮助,因为我是此类程序的新手。
我的html:
<table class="table mg-b-0 table-contact" style="width:100% !important;" id="preEnrolTable">
<thead>
<tr>
<!--<th class="wd-5p">
<label class="ckbox mg-b-0">
<input type="checkbox"><span></span>
</label>
</th>-->
<th class="tx-10-force tx-mont tx-medium">DNI</th>
<th class="tx-10-force tx-mont tx-medium hidden-xs-down">Nombre</th>
<th class="tx-10-force tx-mont tx-medium hidden-xs-down">Tarjeta</th>
<th class="tx-10-force tx-mont tx-medium hidden-xs-down">Clave</th>
<th class="tx-10-force tx-mont tx-medium hidden-xs-down">Privilegio</th>
<th class="tx-10-force tx-mont tx-medium hidden-xs-down">Huella</th>
<th class="tx-10-force tx-mont tx-medium hidden-xs-down">Rostro</th>
<th class="wd-5p hidden-xs-down"></th>
</tr>
</thead>
</table>
这是应该带来数据的脚本:
function getPreEnrol()
$("#preEnrolTable").DataTable().clear();
$("#preEnrolTable").DataTable().destroy();
var table = jQuery("#preEnrolTable");
var oTable = table
.on('preXhr.dt',function(e,settins,data)
$("#modalLoadText").html('Estamos cargando la información, espere un momento!');
$("#modalLoad").modal('show');
)
.dataTable(
"processing": false,
"autoWidth": false,
"paging": true,
"pageLength": 5,
"serverSide": true,
"order": [
[0, 'asc']
],
"ajax":
"url": "SYS_include/WS/PreEnrolamiento/WS_PreEnrolamiento.php",
"data":
"getDatos":true
...
这是在 ajax url 中调用的脚本:
$Permisos = new Permisos();
$pagina=45;
$modulo=3;
$i = $Permisos->traerPermisos($json,$pagina,$modulo);
$preEnrol = new PreEnrolamiento();
//error_log($_GET["getDatos"]); // devuelve true
//error_log(print_r($_GET["getDatos"])); // devuelve 1
if(isset($_GET["getDatos"]) && !empty($_GET["getDatos"]))
switch ($i)
case 1:
case 2:
case 3:
case 4:
case 5:
echo $preEnrol->getPreEnrolamientos($instancia,$sucursal,$conn);
break;
else if(isset($_POST["getNac"]) && !empty($_POST["getNac"]))
switch ($i)
case 1:
case 2:
case 3:
case 4:
case 5:
$nacionalidades = Dni::obtenerNacionalidades($instancia,$conn);
echo json_encode($nacionalidades);
break;
【问题讨论】:
在浏览器的网络检查器中查看 ajax 响应,以确保它符合预期。很可能不是。 另外,你确定$("#preEnrolTable")
不应该是$("#ColabsTable")
吗?我在上面的 HTML 中没有看到 id 为“preEnrolTable”的元素。
数据是您预期的吗?是不是数据表可以解析的响应?
显示错误在哪一行?因为你没有在上面的代码中调用.length
。
DataTables: Cannot read property 'length' of undefined的可能重复
【参考方案1】:
我终于找到了解决问题的方法,如果有人需要,我会在这里发布,我的 ajax 调用:
“阿贾克斯”:
"url": "SYS_include/WS/PreEnrolamiento/WS_PreEnrolamiento.php",
"type":"get", //added
"dataType":'json', //added
"dataSrc": "", //added
"data":"getDatos": true
,
【讨论】:
以上是关于未捕获的类型错误:数据表的主要内容,如果未能解决你的问题,请参考以下文章
数据表插件错误未捕获的类型错误:无法读取未定义的属性“mData”
未捕获的类型错误:无法设置未定义数据表的属性“_DT_CellIndex”