数据表无法处理ajax调用

时间:2017-09-19 12:27:13

标签: php jquery ajax datatable datatables

我在我的网络应用程序中使用Datatable。 以下是使用ajax获取数据的简单代码。

<script>
    $(document).ready(function() {
        $('#mytable').DataTable();
    } );
</script>

<body>
  <h2>AJAX SELECT</h2><hr>
  <div align="center">
    Select Team :
    <select name="select" id ='teamSelect'>
        <option value="">Select Value</option>
        <option value="op2">Company 1</option>
    </select>
  </div>
  <div id='tableContainer' align="center"></div>

 <script>
    $(function() {
        $("#teamSelect").bind("change", function() {
            $.ajax({
                type: "GET", 
                url: "getData.php",
                "dataSrc": "tableData",
                success: function(html) {
                    $("#tableContainer").html(html);
                }
            });
        });

    });
</script>

和Getdata.php代码

<table id="mytable" class="display" cellspacing="0" width="50%">
    <thead>
    <tr>
        <th>First name</th>
        <th>Last Name</th>
        <th>Email</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>Airi Satou</td>
        <td>Accountant</td>
        <td>Tokyo</td>
    </tr>
    <tr>
        <td>Brielle Williamson</td>
        <td>Integration Specialist</td>
        <td>New York</td>
    </tr>
    <tr>
        <td>Herrod Chandler</td>
        <td>Sales Assistant</td>
        <td>San Francisco</td>
    </tr>
    <tr>
        <td>Rhona Davidson</td>
        <td>Integration Specialist</td>
        <td>Tokyo</td>
    </tr>
</tbody>

我链接Jquery,datatable css和js both.but仍然返回输出为普通的HTML表。 没有建立控制台错误。 我需要数据表中的数据。那我该怎么做呢。

我还在index.php页面中测试了数据表。它工作得很好。

2 个答案:

答案 0 :(得分:7)

您在添加表之前初始化数据表。你需要在ajax中初始化它

删除以下脚本

<script>
    $(document).ready(function() {
        $('#mytable').DataTable();
    } );
</script>

更新ajax如下:

<script>
    $(function() {
        $("#teamSelect").bind("change", function() {
            $.ajax({
                type: "GET", 
                url: "getData.php",
                "dataSrc": "tableData",
                success: function(html) {
                    $("#tableContainer").html(html);
                    $('#mytable').DataTable({ 
                      "destroy": true, //use for reinitialize datatable
                   });
                }
            });
        });

    });
</script>

答案 1 :(得分:0)

<script>
$(document).ready(function() {
    $('#mytable').DataTable();
} );
</script>

在Getdata.php文件的底部还链接到数据表css和js

或者使用ajaxComplete函数()来调用数据表