我正在使用dataTables来检索、显示和组织 PHP 脚本中的数据(这反过来又从 MySQL 数据库中提取信息)。
使用以下代码,dataTables 检索信息并将其放入一个......好吧,表格。
$('#content div').html( '<table id="example"></table>' );
var oTable = $('#example').dataTable( {
"bJQueryUI": true,
"bProcessing": true,
"bServerSide": true,
"sPaginationType": "full_numbers",
"sAjaxSource": "dataTables.php",
"aoColumns": [
/* UID */ { "bSearchable": false,
"bVisible": false },
/* Datetime */ { "asSorting": [ "desc" ] },
/* Staff Name */ null,
/* Room */ null,
/* Reason */ null,
/* Urgency */ null,
/* Processed? */ null ],
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
var sDirectionClass;
if ( aData[6] === null ) {
sDirectionClass = "new";
if ( row % 2 !== 0 )
sDirectionClass = "new_odd";
} else {
sDirectionClass = "std";
}
row++;
$(nRow).addClass( sDirectionClass );
return nRow;
}
} );
我希望大部分内容都非常简单——这个函数获取sAjaxSource
属性并查看我的dataTables.php
文件,该文件只是读取 MySQL DB 并以 JSON 编码格式返回一些信息。
这一切都很好,但我正试图将我的表格列之一变成可点击的链接。
简短的 PHP 是;
if ( $aColumns[$i] == "Processed" )
{
$link = '<img src="tick.png" id="' . $aRow[ $aColumns[0] ] . '" />';
$row[] = ( empty( $aRow[ $aColumns[$i] ] ) ) ? $link : $aRow[ $aColumns[$i] ];
}
基本上是伪的if Processed field is NULL display an image with the UID of that row; otherwise display the value of Processed field
。
我现在想做的是使该图像 JS-clickable 以运行 AJAX 功能。我认为下面的代码(在上面的JS之后立即原位):
oTable.find('img').click(function(){
var process = $(this).attr("id");
$.ajax({
url: "check_alerts.php",
data: { process: id }
}).done(function() {
oTable.fnDraw(false);
});
});
不幸的是,它似乎什么也没做。我想这是因为img
我正在创建的 DOM 是在 DOM 中创建的,因此当上述函数运行时,它不会找到任何img
标签。
如何修改代码以便这些图像可以运行我的 AJAX 功能?
提前致谢,