DataTables搜索"男性"和女性"

时间:2016-05-07 09:25:47

标签: php search mysqli datatables

我正在使用数据表并且它有一个内置搜索(如果这就是你所说的),现在我在我的表列表中遇到搜索性别问题,因为每当我搜索&#时34;男性"男性和女性都出现在名单中。我将这样做,它只会过滤性别"男性"如果我搜索男性。但女性如果我寻找女性?对不起,如果我没有尝试任何事情,因为我真的没有想法。我尝试过搜索,但那些与我有相同问题的人没有得到我理解的答案,所以我只是想尝试一下也许你们可以帮助我。如果你不能,因为我没有尝试任何东西,我理解。但我仍然希望。提前谢谢你!

  

数据库名称 - db_seq

     

表名 - 简介

     

表格列 - 姓名,性别,用户名,密码

编辑:我的代码

<?php include('dbcontroller.php');
    $sql = "SELECT name, gender FROM profile ORDER by name ASC";
    $res = mysqli_query($conn,$sql)or die(mysqli_error());
    ?>
    <table id="batchList" class="table table-striped table-bordered" cellspacing="0" width="100%">
        <thead>
            <tr>
                <th>Name</th>
                <th>Gender</th>
            </tr>
        </thead>
        <tfoot>
            <tr>
                <th>Name</th>
                <th>Gender</th>
            </tr>
        </tfoot>        
        <tbody> 
        <?php
        while ($row = mysqli_fetch_array($res)) {
            $name = $row['name'];
            $gender = $row['gender'];
        ?>
            <tr>
                <td><?php echo $name;?></td>
                <td><?php echo $gender;?></td>                  
            </tr>
<?php
    }
?>
    </tbody>
</table>
<?php
mysqli_close($conn);
?>


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

1 个答案:

答案 0 :(得分:0)

如果您使用的是 ssp 类,下面的示例可能会很有用。

ssp.class.php -> 过滤方法

// Individual column filtering
    if ( isset( $request['columns'] ) ) {
        for ( $i=0, $ien=count($request['columns']) ; $i<$ien ; $i++ ) {
            $requestColumn = $request['columns'][$i];
            $columnIdx = array_search( $requestColumn['data'], $dtColumns );
            $column = $columns[ $columnIdx ];

            $str = $requestColumn['search']['value'];

            if ( $requestColumn['searchable'] == 'true' &&
             $str != '' ) {
                if(!empty($column['db'])){
                    if ($requestColumn['search']['regex'] == 'true') {
                        $binding = self::bind( $bindings, $str, PDO::PARAM_STR );
                        $columnSearch[] = "`".$column['db']."` = ".$binding;
                    } else {
                        $binding = self::bind( $bindings, '%'.$str.'%', PDO::PARAM_STR );
                        $columnSearch[] = "`".$column['db']."` LIKE ".$binding;
                    }
                }
            }
        }
    }

javascript DataTable 的配置对象

initComplete: function () {

                this.api().columns().every( function () {
                    var that = this;
                    var column = this;

                    $( 'input', this.footer() ).on( 'keyup change clear', function () {
                        if ( that.search() !== this.value ) {
                            that
                                .search( this.value )
                                .draw();
                        }
                    } );

                    $( 'select', this.footer() ).on( 'change clear', function () {

                        if ( that.search() !== this.value ) {
                            if (this.value === '') {
                                that
                                    .search( this.value )
                                    .draw();
                            } else {
                                that
                                    .search( this.value, true, false)
                                    .draw();
                            }
                        }
                    } );

                } );
            },