未捕获的TypeError:数据表

时间:2019-07-30 20:18:20

标签: php html json ajax datatables

我正在尝试使用数据表从表中列出数据,但出现错误

  

“未捕获的TypeError:无法读取未定义的属性'length'”

我不知道为什么。感谢您的帮助,因为我是此类程序的新手。

我的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网址中正在调用的脚本:

$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;
    }

}

1 个答案:

答案 0 :(得分:0)

最后,我找到了解决问题的方法,如果有人需要,我会将其张贴在这里,我的ajax调用:

“ ajax”:{

                    "url": "SYS_include/WS/PreEnrolamiento/WS_PreEnrolamiento.php", 
                    "type":"get", //added
                    "dataType":'json', //added                  
                    "dataSrc": "", //added
                    "data":{"getDatos": true }
                      },