javascript - Datatables JS 通过单列值获取行索引 PHP

标签 javascript datatables row selection

我正在研究医疗运输系统。我每天大约有 700 趟行程,所以表相当大。 我想要的应用程序,在用户添加行程后,屏幕定位在新添加的行程中。 (滚动),供用户确认已成功添加的行程(不是我的想法,我的客户希望这样)。为此,我通过参数将添加的新行程的 ID 发送到页面。 我正在使用我在数据表页面上找到的函数“fnFindCellRowIndexes”,但我无法使其工作。我等待搜索的列是索引 1。 这是我的代码:

  <script type="text/javascript">
    $(document).ready(function() {

        var table = $('#tabla').DataTable({
            "deferRender": true,
            "language": {
                "url": "include/DataTables/Spanish.json"
            },
            "paging":   false,
            "ordering": false,
            "info":     false,
            "searching": true,
            "columnDefs": [
            {
                "targets": [ 0 ],
                "visible": false,
                "searchable": true
            },
            {
                "targets": [ 1 ],
                "visible": false,
                "searchable": false
            }
            ],
            "stateSave": true
        }); 

         var index = table.fnFindCellRowIndexes( '<?=$idNuevo?>', 1 );
         alert(index);

jQuery.fn.dataTableExt.oApi.fnFindCellRowIndexes = function ( oSettings, sSearch, iColumn )
        {
            var
                i,iLen, j, jLen, val,
                aOut = [], aData,
                columns = oSettings.aoColumns;

            for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )
            {
                aData = oSettings.aoData[i]._aData;

                if ( iColumn === undefined )
                {
                    for ( j=0, jLen=columns.length ; j<jLen ; j++ )
                    {
                        val = this.fnGetData(i, j);

                        if ( val == sSearch )
                        {
                            aOut.push( i );
                        }
                    }
                }
                else if (this.fnGetData(i, iColumn) == sSearch )
                {
                    aOut.push( i );
                }
            }

            return aOut;
        };

</script>

我收到错误“fnFindCellRowIndexes 不是函数” 谁能帮我?如果有人有更好的想法,建议会被接受。

最佳答案

  1. 声明fnFindCellRowIndexes 在实例化数据表之前!

  2. 必须使用 dataTable() 进行实例化。 fnFindCellRowIndexes是一个老式的非 API 插件。据我在您的代码中看到的,您应该不会有问题。如果您仍然想使用新的 API,您可以随时使用 table.api().<api-functions>

  3. PHP 变量不会神奇地回显自身(无意冒犯:-) - 你忘记实际打印它:

<罢工> var index = table.fnFindCellRowIndexes( '', 1 );

  • 请记住 fnFindCellRowIndexes是一个 equal/== 搜索。如果您搜索1在#1 列中,它仅返回包含值 1 的列仅此而已,不是持有 10 的行, 101 , 1.1等等
  • 关于javascript - Datatables JS 通过单列值获取行索引 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33739604/

    相关文章:

    c# - 如何将 JavaScript 库添加到我的 C# MVC 项目?

    javascript - 在 JavaScript 中实现自动内存(返回闭包函数)

    function - 从 React-Native ListView 行中的子组件调用父函数

    根据字符串变量对行重新排序

    iOS7 Tableview删除行最佳实践

    javascript - Highcharts 中 TreeMap 中的选择更改

    javascript - 禁用选中/取消选中复选框时的输入

    javascript - 为动态创建的 html 表添加分页

    javascript - 数据表未定义样式和空行

    javascript - jquery中刷新DataTable插件表