Datatables JS通过单列值获取行索引PHP
Datatables JS get row index by single column value PHP
我正在研究医疗运输系统。我每天大约有 700 趟行程,所以 table 相当大。
我想要的app,用户添加行程后,屏幕定位在新添加的行程中。 (滚动),让用户确认行程已成功添加(不是我的主意,我的客户希望那样)。为此,我通过参数将添加的新行程的 ID 发送到页面。
我正在使用在数据 table 页面上找到的函数 "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 is not a function"
谁能帮我?如果有人有任何想法以更好的方式做到这一点,建议被接受。
在实例化数据表之前声明fnFindCellRowIndexes
!
您必须用dataTable()
实例化。 fnFindCellRowIndexes
是一个老式的 none-API 插件。据我在你的代码中看到的,你不应该有问题。如果您仍想使用新的 API,您可以随时使用 table.api().<api-functions>
PHP 变量不会神奇地回显自己(无意冒犯 :-) - 你忘记实际打印它了 :
var index = table.fnFindCellRowIndexes( ' echo $idNuevo ?>', 1 );
- 请记住,
fnFindCellRowIndexes
是等于/== 搜索。如果您在第 1 列中搜索 1
,则只有 return 列包含值 1
,仅此而已,而不是包含 10
、101
、1.1
等
我正在研究医疗运输系统。我每天大约有 700 趟行程,所以 table 相当大。 我想要的app,用户添加行程后,屏幕定位在新添加的行程中。 (滚动),让用户确认行程已成功添加(不是我的主意,我的客户希望那样)。为此,我通过参数将添加的新行程的 ID 发送到页面。 我正在使用在数据 table 页面上找到的函数 "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 is not a function" 谁能帮我?如果有人有任何想法以更好的方式做到这一点,建议被接受。
在实例化数据表之前声明
fnFindCellRowIndexes
!您必须用
dataTable()
实例化。fnFindCellRowIndexes
是一个老式的 none-API 插件。据我在你的代码中看到的,你不应该有问题。如果您仍想使用新的 API,您可以随时使用table.api().<api-functions>
PHP 变量不会神奇地回显自己(无意冒犯 :-) - 你忘记实际打印它了 :
var index = table.fnFindCellRowIndexes( ' echo $idNuevo ?>', 1 );
- 请记住,
fnFindCellRowIndexes
是等于/== 搜索。如果您在第 1 列中搜索1
,则只有 return 列包含值1
,仅此而已,而不是包含10
、101
、1.1
等