使用Jquery数据表使用Ajax填充的数据进行故障筛选

时间:2011-03-28 15:24:20

标签: jquery ajax datatables

我有一个使用以下代码的jquery数据表:

// Test list table
$('#dashboard_testlist_table').dataTable({
    "bJQueryUI": true,
    "bAutoWidth": false,
    "bProcessing": true,
    "aaSorting": [[0, 'asc'], [2, 'asc']],
    "sPaginationType": "full_numbers",
    "sAjaxSource": projectTestListTablePopulateUrl,
    "oLanguage": {
        "sSearch": "Search all columns:"
    },
    "aoColumns": [{
        "sTitle": "Protocol/Test/Case"
    }, {
        "sTitle": "Last Run"
    }, {
        "sTitle": "Last Build/Phase"
    }, {
        "sTitle": "Detail",
    "sClass": "center"
    }, {
        "sTitle": "Owner"
    }]
});  

我的服务器正确发送回JSON,表格按预期填充。

我遇到的问题是我无法在表格中进行任何过滤。搜索框中的任何字符都会立即过滤到没有显示的结果。我使用了很多数据表,这个让我发疯。

我注意到当我“查看页面源”时,源中没有呈现的html。这是我原来的HTML:

<!--Test List Table-->
<table id="dashboard_testlist_table" class="display">
<!--Table Header-->
<thead>
    <tr>
        <th>Protocol/Test/Case</th>
        <th>Last Run</th>
        <th>Last Build/Phase</th>
        <th>Detail</th>
        <th>Owner</th>
    </tr>
</thead>

<tbody>
<!--Table Body, ajax populated, see /media/custom_js/user_dashboard.js -->
</tbody>
</table>

加载页面后,它仍然显示相同的内容。是否应该在那里填充发送的JSON数据?

否则,是否有人对过滤此数据首先要查找的内容有任何建议?我正在使用jquery datatables 1.6.2。

2 个答案:

答案 0 :(得分:0)

您是否在服务器端页面中使用了搜索查询

像这样提出

if ( $_GET['sSearch'] != "" )
{
    $sWhere = "WHERE engine LIKE '%".mysql_real_escape_string( $_GET['sSearch'] )."%' OR ".
                        "browser LIKE '%".mysql_real_escape_string( $_GET['sSearch'] )."%' OR ".
                        "platform LIKE '%".mysql_real_escape_string( $_GET['sSearch'] )."%' OR ".
                        "version LIKE '%".mysql_real_escape_string( $_GET['sSearch'] )."%' OR ".
                        "grade LIKE '%".mysql_real_escape_string( $_GET['sSearch'] )."%'";


}

答案 1 :(得分:0)

实际上,这个问题最终成为我在JSON(链接)中传递的一些html,该JSON被放入表中的td个元素之一。它是畸形的,并导致头痛。