私は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
ファイルを調べます。ファイルはMySQLDBを読み取り、JSONでエンコードされた形式で情報を返します。
これはすべて正常に機能しますが、テーブルの列の1つをクリック可能なリンクに変換しようとしています。
このための簡単な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クリック可能にしてAJAX関数を実行できるようにすることです。私は次のコード(上記のJSの直後のinsitu)だと思いました:
oTable.find('img').click(function(){
var process = $(this).attr("id");
$.ajax({
url: "check_alerts.php",
data: { process: id }
}).done(function() {
oTable.fnDraw(false);
});
});
残念ながら、何もしないようです。これは、作成しているDOMで作成されているため、上記の関数を実行するとタグimg
が見つからないためだと思います。img
これらの画像がAJAX関数を実行するようにコードを修正するにはどうすればよいですか?
前もって感謝します、