特定の列のアイテムをリンクしようとしていますが、それぞれがid
json文字列とは異なるリンクになります。残念ながら、APIを使用してこれを行う方法を見つけることができません(APIを使用せずにこれを行う方法はたくさんあることを知っています)が、列からアイテムをリンクする方法を探しています(それぞれ特定のリンク付きid
)。
これが私のコードです。getJSON
サーバーからJSONを取得するために使用し、このJSONから次のようにテーブルにデータをロードします。
$.getJSON("http://url.from/method?parameter=foo&callback=?", function(data)
{
var total = 0;
$("#table_body").empty();
var oTable = $('#mytable').dataTable(
{
"sPaginationType" : "full_numbers",
"aaSorting": [[ 0, "asc" ]]
});
oTable.fnClearTable();
$.each(data, function(i, item)
{
oTable.fnAddData(
[
item.contact_name,
item.contact_email
]
);
});
});
私がやりたいのは、行ごとに、contact_name
をその行にリンクすることです。これもJSONにあり、を使用してこのループid
内でアクセスできます。$.each
item.contact_id
DataTables APIを使用してこれを行う方法はありますか?はいの場合、私に説明して、これに役立つ優れたリソースを提供していただけますか?
OBS:JSONPを使用しています
ありがとう。
私の新しいコードで更新:
エラーは、クリックするとIDを取得することですが、$.each
ループ内の行を処理しているため、クリックした行については、常にid
最後に処理された行のIDを取得します。
var options =
{
"sPaginationType" : "full_numbers",
"aaSorting": [[ 0, "asc" ]],
"aoColumns": [{
"sTitle": 'Name',
"sClass": "dtName",
}, {
"sTitle": 'Email',
"sClass": "dtEmail",
}, {
"bVisible": false
}],
}
var oTable = $('#table').dataTable(options); // Creates a new instance of the DataTable
oTable.fnClearTable();
$.each(data, function(i, item)
{
oTable.fnAddData(
[
item.contact_name ,
item.contact_email,
item.contact_id
]
);
var rowData = oTable.fnGetData(i); // fetch all the ids into this array
$('#table tbody tr').click( function()
{
window.location.href = "/panel/contacts/"+rowData[2];
});
});