数据表不起作用

时间:2013-10-29 13:21:52

标签: php jquery datatables

我有一个表,我使用来自MySQL的数据通过PHP填充。

<table id="tab" class="table">
      <thead>
        <tr>           
          <th>Heading</th>
        </tr>
      </thead>

      <tbody>
        <?php
        session_start(); 
        $id=$_SESSION['id'];
        $val=$_SESSION['val'];

        if($val=="1")
        {
            $result = $obj->getAllVals();
        }
        else
        {
            $result = $obj->getVal($id);
        }

        foreach($result as $row) { ?>
                <tr style="cursor:pointer" onclick="gp('<?php echo $row['name']; ?>')">
                <td> <?php echo $row['name']; ?> </td> </tr>
            <?php }     ?>
      </tbody>

    </table>

我无法将数据视为数据表。这是我如何调用数据表:

$(document).ready( function () {
    $('#tab').dataTable();
});

以下是我正在使用的脚本:

<script src="static/js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="static/lib/jquery.dataTables/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="static/lib/jquery.dataTables/js/DT_bootstrap.js"></script>
<script type="text/javascript" src="static/lib/jquery.dataTables/js/datatables.responsive.js"></script>
<script src="static/js/jquery-ui.js" type="text/javascript" charset="utf-8"></script>

5 个答案:

答案 0 :(得分:3)

你是否填充了变量$ result?

如果替换它会怎样:

   foreach($result as $row) { ?>
           <tr style="cursor:pointer" onclick="gp('<?php echo $row['name']; ?>')">
           <td> <?php echo $row['name']; ?> </td> </tr>
       <?php }     ?>

由此:

   foreach($result as $row) { ?>
           <tr><td>Test</td></tr>
       <?php }     ?>

它是否显示了很多“测试”细胞? 如果是,那么从“$ row”变量中获取信息会出现问题。 如果没有,那么foreach循环或“$ obj-&gt;”都有问题。调用

答案 1 :(得分:2)

您至少有一个错误,就在

之外
<?php ?>

体:

<tr style="cursor:pointer" onclick="gp(\''.$row['name'].'\')">

=&GT;

<tr style="cursor:pointer" onclick="gp('<?php echo $row['name']; ?>')">

答案 2 :(得分:1)

会话启动方法应该在php文件的第一行  请写下

 <?php
 session_start();
 ?> 

答案 3 :(得分:0)

尝试使用while循环,而不是foreach。

    while($row = mysql_fetch_array($result)) {

          echo "<tr style='cursor:pointer' onclick='gp('".$row['name']."')'>
                    <td> ".$row['name']." </td> 
                </tr>";
    }

答案 4 :(得分:0)

我假设表中有行,并且你说“控制台没有丢失任何与数据表相关的错误”

在这种情况下,您可能需要检查不相关的错误。 如果有错误,可能会停止所有进一步的脚本执行。

您应该检查此行$('#tab').dataTable();是否完全执行(您可以将其替换为警报并查看)

如果是这种情况,问题将通过纠正错误来解决