こんにちは私は同じページの2つのテーブルでPicnetテーブルフィルタを使用しています。 これらのうちの1つは、AJAXを使用してMySQLデータベースからデータを取得するjsファイルで動的に生成されます。 もう一方にはハードコードされたデータがあります。picnetテーブルフィルタが動的テーブルで動作しない
動的に生成されるのは機能しないものです。 (問題がそれに関連しているかどうかを確認するためにハードコードされたものを作成しました) 私はjs関数で "thead"タグと "th"タグを生成していましたが、 "thead"は定義されていません。私はそのコードをHTMLファイルに移動しました...現在、 "tr"と "td"を "tbody"にappend関数で追加していますが、フィルタは機能しません。コンボボックスフィルタの場合、唯一のオプションは "Select .."です。カラムデータに基づいて生成されるべき他のオプションはありません。
あなたはここで何が問題になるか考えていますか?事前に おかげで...モニカ
HTMLコード:
<table id="tablaReservas" border="1">
<thead>
<tr><th>Reserva#</th><th filter-type="ddl">Recurso</th><th>Inicio</th><th>Fin</th>th>Responsable</th><th>Usuario</th></tr>
</thead>
<tbody>
</tbody>
</table>
Quick Find: <input type="text" id="quickfind"/><a id="cleanfilters" href="#">Clear Filters</a>
<table id='demotable'>
<thead>
<tr><th filter-type="ddl">Col1</th><th>Col2</th><th>Col3</th></tr>
</thead>
<tbody>
<tr><td>Value 1</td><td>Value 2</td><td>Value 3</td></tr>
<tr><td>Value 4</td><td>Value 6</td><td>Value 8</td></tr>
<tr><td>Value 5</td><td>Value 7</td><td>Value 9</td></tr>
</tbody>
</table>
Javascriptコード:フィルタを使用する
$(document).ready(inicializar);
function inicializar(){
traerReservas();
var options = { additionalFilterTriggers: [$('#quickfind')], clearFiltersControls: [$('#cleanfilters')]};
$("#tablaReservas").tableFilter(options);
$("#demotable").tableFilter(options);
}
function traerReservas(){
$.ajax({async:true,
url:"../Persistencia/procesaConsultaReservas.php",
type:"POST",
datatype:"json",
success:mostrarTabla,
error:mensajeTablaReservas,
});
}
function mostrarTabla(data){
var d= eval('(' + data + ')');
if (data!=0) {
for (i=0; i < d.length; i++) {
var tr= $("<tr id='" + d[i].id + "' onclick=mostrarRecursos(" + d[i].id + ");>" +
"<td>" + d[i].id + "</td>" +
"<td>" + d[i].nombre + "</td>" +
"<td>" + d[i].inicio + "</td>" +
"<td>" + d[i].fin + "</td>" +
"<td>" + d[i].responsable + "</td>" +
"<td>" + d[i].usuario + "</td>" +
"</tr>");
$("#tablaReservas tbody").append(tr);
}
}
}
これは問題なく動作しました –