类型错误:oColumn是不确定的使用jQuery数据表库当(TypeError: oColumn

2019-07-31 09:11发布

我有越来越jQuery的数据表库正常出现在我的Joomla网站表中的问题。 http://datatables.net

剧本是成功的一半我的样式表,然后放弃了(我得到的表头,颜色改变,文本颜色,但没有数据表控制等)。

萤火虫也抛出以下错误:

 TypeError: oColumn is undefined

在我的Joomla模板的index.php我在下面<head>

<script src="./datatables/js/jquery.js" type="text/javascript"></script>
<script src="./datatables/js/jquery.dataTables.js" type="text/javascript"></script>
<script type="text/javascript"> 
    jQuery.noConflict();                
    jQuery(document).ready(function() {
    jQuery('#staff_table').dataTable({
        "bLengthChange": true,
        "bFilter": true,
        "bSort": true,
        "bInfo": true,
        "bAutoWidth": true
        } );
    } );
</script>

在HTML / PHP看起来是这样的:

<h3>Members of Staff</h3>
<p>If you're looking for a member of staff at Tower Road Academy, you'll find their details here.</p>
<table class="staff_table" id="staff_table">
    <tr class="staff_table_head">
        <th>Name</th>
        <th>Job Title</th>
        <th>Email Address</th>
    </tr>

    <?php
        $result = mysql_query("SELECT * FROM itsnb_chronoforms_data_addstaffmember");

        while($row = mysql_fetch_array($result))
        { 
        echo '<tr>';  
        echo '<td>' . $row['staff_name'] . '</td><td>' . $row['staff_job'] . '</td><td><a     href=mailto:"' . $row['staff_email'] . '">' . $row['staff_email'] . '</a>' . '</td>';
        echo '</tr>';
        }
    ?>
</table>

Answer 1:

对于数据表中正常工作,您的表必须有一个适当的构造<thead><tbody>标签。

在HTML数据表的所有需求是一个<TABLE>其被很好地形成(即,有效的HTML),具有报头(由定义的<THEAD> HTML标签)和主体(一个<TBODY>标签)

文档数据表



Answer 2:

排序呢!,事实数据表是非常严格的关于它接受它抛出一个错误之前的HTML。 我加了标签我的HTML,现在它的工作,也请注意,你必须为你的标题列的标签,而不是标签,因为这也将引发错误。

HTML代码现在看起来是这样的:

<h3>Members of Staff</h3>
 <p>If you're looking for a member of staff at Tower Road Academy, you'll find their      details here.</p>
 <table class="staff_table" id="staff_table">
 <thead>
 <tr class="staff_table_head">
 <th>Name</th>
<th>Job Title</th>
<th>Email Address</th>
 </tr>
</thead>

 <?php
$result = mysql_query("SELECT * FROM itsnb_chronoforms_data_addstaffmember");

while($row = mysql_fetch_array($result))
   {
echo '<tr>';  
echo '<td>' . $row['staff_name'] . '</td><td>' . $row['staff_job'] . '</td><td><a         href=mailto:"' . $row['staff_email'] . '">' . $row['staff_email'] . '</a>' . '</td>';
    echo '</tr>';
  }
 ?>
</table>

并调用了jQuery等看起来是这样的:

<script src="./datatables/js/jquery.js" type="text/javascript"></script>
    <script src="./datatables/js/jquery.dataTables.js" type="text/javascript"></script>

            <script type="text/javascript"> 

 jQuery(document).ready(function() {
jQuery('#staff_table').dataTable({
    "bLengthChange": true,
    "bFilter": true,
    "bSort": true,
    "bInfo": true,
    "bAutoWidth": true
} );
} );

  </script>


Answer 3:

希望这会帮助你的一切,至少要得到一个提示出来。

http://datatables.net/forums/discussion/comment/42607

我的问题是,类型错误:山坳是不确定的。

总结答案:

表的THEAD元件内的TR元件内TH元素的数目必须等于在表您TBODY的TR元件(一个或多个)内的TD元素(或表行内的列的数量)的数量。

您可以阅读波纹管的解释:

问题是,我没有把THEAD部内足够的Th或TD元素为等于该予打印作为TBODY部分内的Tr的元件内部TD元素的列数。

下面的代码确实给我的错误。

<thead>
 <tr>
    <th> Heading 1</th>
    <th> Heading 2</th>
 </tr>
</thead>
<tbody>
 <tr>
    <td> Column 1 </td>
    <td> Column 2</td>
    <td> Column 3</td>
 </tr>
</tbody>"

但是,仅仅增加一个个元素于TR元件的内THEAD元素使得它就像一个魅力! :)和我从上面的链接的提示。

还有,我发现所有的THEAD的Tr的元素中的TH元素可以td元素也一样,它也是有效的HTML由jQuery的数据表所要求的水平!

希望我帮助你们中的一些,以节省您的时间! :)



Answer 4:

试试这个:

jQuery('#staff_table').dataTable({
                        "bPaginate": true,
                        "bLengthChange": true,
                        "bFilter": true,
                        "bSort": true,
                        "bInfo": true,
                        "bAutoWidth": true,
                     "aoColumns": [
                                        null,
                                        null //put as many null values as your columns

                    ]
                    });


文章来源: TypeError: oColumn is undefined When Using jQuery Datatables Library