jQuery dataTable 搜索值“活动”不起作用

Posted

技术标签:

【中文标题】jQuery dataTable 搜索值“活动”不起作用【英文标题】:jQuery dataTable search value 'Active' not working 【发布时间】:2019-01-18 01:20:31 【问题描述】:

美好的一天!我在 jquery dataTable 搜索栏中搜索字符串单词“Active”时遇到问题。如果我更改“非活动”一词的搜索栏。该表将过滤。但是,它似乎不适用于字符串“Active”。

这是所有数据:

当我搜索不活动时 当我搜索活动

表格代码:

<table class="table table-hover table-bordered" id="table1">
                                <thead>
                                    <tr>
                                        <th>Faculty Code</th>
                                        <th>Last Name</th>
                                        <th>First Name</th>
                                        <th>Middle Name</th>
                                        <th>Position</th>
                                        <th></th>
                                        <th>Status</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php  while ($row = $result -> fetch_object()): ?>
                                    <tr>
                                        <td><?php echo $row->Faculty_ID;?></td>
                                        <td><?php echo $row->Faculty_Lastname ;?></td>
                                        <td><?php echo $row->Faculty_Firstname ;?></td>
                                        <td><?php echo $row->Faculty_Middlename;?></td>
                                        <td><?php echo $row->Position; ?></td>
                                        <td class="text-center">
                                            <a  class="btn btn-sm btn-outline-primary text-muted" href="Faculty_edit.php?Faculty_ID=<?php echo $row->Faculty_ID;?>">Edit</a>

                                            <a  data-fid="<?php echo  $row->Faculty_ID;?>" title="Delete Faculty" data-toggle="modal" data-target="#delete_modal"  class="btn btn-sm btn-outline-danger delete-faculty-btn text-muted" >Delete</a>
                                        </td>

                                        <td>
                                            <?php if($row->Status=='Active') echo '<a href="#deactive_account" data-toggle="modal" data-id='.$row->Faculty_ID.' class="activate" style="color:green;">Active</a>'; ?>
                                            <?php if($row->Status=='Inactive') echo '<a href="#active_modal" data-toggle="modal" data-id='.$row->Faculty_ID.' class="activate" style="color:red;">Inactive</a>'; ?>
                                        </td>
                                    </tr>
                                    <?php endwhile; ?>
                                </tbody>
                            </table>

jQuery 代码:

<script>
    $('#table1').DataTable(
    order: [],
    columnDefs: [  orderable: false, targets: [5]  ]
    );
</script>

【问题讨论】:

jquery 数据表搜索不完全匹配,但匹配包含这就是为什么活动与活动以及非活动匹配的原因。 知道如何过滤它吗? 请参考***.com/questions/8609577/… 我是 jQuery 新手,如何编写此代码:oTable.fnFilter( "^"+TERM+"$", COLUMN , true); 请查看我下面的帖子 【参考方案1】:

$(function()
var table1 = $('#table1').DataTable(
        order: [],
        "oSearch": "bSmart": false, // disable smart search
        columnDefs: [  orderable: false, targets: [5]  ]
        );
 $('#table1_wrapper input[type=search]').on( 'keyup click', function () 
      table1
        .column('6')
        .search( "^" + this.value, true, false, true )
        .draw();
    );
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.datatables.net/v/dt/dt-1.10.18/datatables.min.js"></script>
<link href="https://cdn.datatables.net/v/dt/dt-1.10.18/datatables.min.css" rel="stylesheet"/>
<table class="table table-hover table-bordered" id="table1">
                                <thead>
                                    <tr>
                                        <th>Faculty Code</th>
                                        <th>Last Name</th>
                                        <th>First Name</th>
                                        <th>Middle Name</th>
                                        <th>Position</th>
                                        <th></th>
                                        <th>Status</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    
                                    <tr>
                                        <td>1</td>
                                        <td>lastname1</td>
                                        <td>FirstName1</td>
                                        <td>Middlename1</td>
                                        <td>Manager</td>
                                        <td class="text-center">
                                            <a  class="btn btn-sm btn-outline-primary text-muted" href="#">Edit</a>

                                            <a  data-fid="" title="Delete Faculty" data-toggle="modal" data-target="#delete_modal"  class="btn btn-sm btn-outline-danger delete-faculty-btn text-muted" >Delete</a>
                                        </td>

                                        <td>
                                            <a href="#deactive_account" data-toggle="modal" class="activate" style="color:green;">Active</a>
                                        </td>
                                    </tr>
									<tr>
                                        <td>2</td>
                                        <td>lastname2</td>
                                        <td>FirstName3</td>
                                        <td>Middlename4</td>
                                        <td>Manager</td>
                                        <td class="text-center">
                                            <a  class="btn btn-sm btn-outline-primary text-muted" href="#">Edit</a>

                                            <a  data-fid="" title="Delete Faculty" data-toggle="modal" data-target="#delete_modal"  class="btn btn-sm btn-outline-danger delete-faculty-btn text-muted" >Delete</a>
                                        </td>

                                        <td>
											<a href="#active_modal" data-toggle="modal" class="activate" style="color:red;">Inactive</a>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>

您可以尝试以下代码,其中搜索将仅限于最后一列,请参阅 Datatable API 文档了解更多详情

【讨论】:

它说.. DataTables 警告:table id=table1 - 无法重新初始化 DataTable。 您无需再次调用.DataTable,只需在您的代码中添加oSearch 部分 我已经更新了帖子,但列搜索将仅限于第 6 列 非常感谢@Bhushan Kawadkar! 我可以搜索所有列吗?

以上是关于jQuery dataTable 搜索值“活动”不起作用的主要内容,如果未能解决你的问题,请参考以下文章

JQuery的datatable里搜索功能怎么修改

如果整个列数据与搜索字符串匹配,如何在jQUERY Datatable中显示/搜索数据?

DataTables jQuery:如何使用单元格的值而不是基于正在呈现的值进行搜索?

jQuery DataTables:隐藏搜索栏

jquery.datatable插件如何不自动加载数据?

jQuery DataTables:如何更改分页活动颜色?