我正在研究医疗运输系统。每天我有大约700次旅行,所以桌子很大。 我想要应用程序,在用户添加旅行后,屏幕位于新添加的行程中。 (滚动),为用户确认成功添加的行程(不是我的想法,我的客户想要那样)。为此,我通过参数向页面发送添加的新旅行的ID。 我正在使用一个函数" fnFindCellRowIndexes"我在datatables页面上找到了,但我无法使它工作。我等待搜索的列是索引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>
我收到错误&#34; fnFindCellRowIndexes不是函数&#34; 谁能帮我?如果有人有任何想法以更好的方式做到这一点,建议被接受。
答案 0 :(得分:1)
在实例化您的dataTable之前声明fnFindCellRowIndexes
!
您必须使用dataTable()
进行实例化。 fnFindCellRowIndexes
是一个oldschool none-API插件。就我在你的代码中看到的那样,你应该没有问题。如果您仍想使用新API,则可以始终使用table.api().<api-functions>
PHP变量并没有神奇地回应自己(没有冒犯:-) - 你忘了实际打印它:
<击> var index = table.fnFindCellRowIndexes('&lt;?echo $ idNuevo?&gt;',1); 击>
fnFindCellRowIndexes
是一个等于/ ==的搜索。如果您在第1列中搜索1
,则只会返回包含值1
的列,而不会返回包含10
,101
,1.1
的行等。