javascript - 如何选择服务器端 jQuery 数据表中的特定行?

标签 javascript jquery datatables

我在 php 中使用 jQuery 数据表服务器端示例来抓取表中的记录,然后显示它们,如本例所示:

http://www.datatables.net/release-datatables/examples/data_sources/server_side.html

我的问题是:如何根据我的 sql 中的 WHERE 子句仅获取特定记录?

请注意,上面的示例获取指定表中的所有记录,允许我们选择列...我们如何做同样的事情但只选择符合特定条件的特定行...即在示例中,加载数据表时默认仅显示 Firefox 浏览器。以下是通过 jquery 调用以填充数据表的 php 脚本中的代码...我实际上是在尝试修改此脚本以仅获取特定行,即行 WHERE 浏览器如“Firefox%”...

 * Filtering
 * NOTE this does not match the built-in DataTables filtering which does it
 * word by word on any field. It's possible to do here, but concerned about efficiency
 * on very large tables, and MySQL's regex functionality is very limited
 */
$sWhere = "";
if ( $_GET['sSearch'] != "" )
{
    $sWhere = "WHERE (";
    for ( $i=0 ; $i<count($aColumns) ; $i++ )
    {
        $sWhere .= $aColumns[$i]." LIKE '%".mysql_real_escape_string( $_GET['sSearch'] )."%' OR ";
    }
    $sWhere = substr_replace( $sWhere, "", -3 );
    $sWhere .= ')';
}

/* Individual column filtering */
for ( $i=0 ; $i<count($aColumns) ; $i++ )
{
    if ( $_GET['bSearchable_'.$i] == "true" && $_GET['sSearch_'.$i] != '' )
    {
        if ( $sWhere == "" )
        {
            $sWhere = "WHERE ";
        }
        else
        {
            $sWhere .= " AND ";
        }
        $sWhere .= $aColumns[$i]." LIKE '%".mysql_real_escape_string($_GET['sSearch_'.$i])."%' ";
    }
}


/*
 * SQL queries
 * Get data to display
 */
$sQuery = "
    SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", implode(", ", $aColumns))."
    FROM   $sTable
    $sWhere
    $sOrder
    $sLimit
";
$rResult = mysql_query( $sQuery, $gaSql['link'] ) or die(mysql_error());

/* Data set length after filtering */
$sQuery = "
    SELECT FOUND_ROWS()
";
$rResultFilterTotal = mysql_query( $sQuery, $gaSql['link'] ) or die(mysql_error());
$aResultFilterTotal = mysql_fetch_array($rResultFilterTotal);
$iFilteredTotal = $aResultFilterTotal[0];

最佳答案

如果您遵循 PHP 中的 CRUD 示例,则 $_GET 键匹配数据表的选项设置键,例如“sSearch”代表您的位置,“iDisplayStart”和“iDisplayLength”代表限制等

关于javascript - 如何选择服务器端 jQuery 数据表中的特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9472682/

相关文章:

javascript - 为什么 innerHTML 在 Android 浏览器中返回 undefined?

javascript - Angular 引导弹出窗口 - 删除自定义指令中的标题

javascript - 如何选择所有列表项,但列表项没有 <ul> 或 <ol> 的嵌套子项

javascript - 有没有一种方法可以使用 rgba 颜色 [0, 15, 31, 0.4 ] 在 vue js 中设置 TD 元素的样式

javascript - 如何使用 twitter bootstrap 使按钮在悬停时亮起

jquery - 失败的ajax请求返回的数据在哪里?

javascript - 生成动态 div 并检索输入元素的值

jQuery TableTools 按钮未加载

javascript - 将 Firestore 数据添加到 DataTable

javascript - 数据表仅显示一项