所以我决定使用Datatables,设法使数据表从json加载数据,但是我不知道如何向行添加onclick事件或类。
这是我使用的旧代码:
<tbody id="skladove_table">
<?php
$query_checkObekt = "SELECT * FROM obekti WHERE owner='$user_hash'";
$result_checkObekt = mysqli_query($conn, $query_checkObekt);
if(mysqli_num_rows($result_checkObekt) > 0) {
$query = "SELECT * FROM items WHERE owner ='$user_hash'";
$result=mysqli_query($conn, $query);
while($row = mysqli_fetch_assoc($result))
{
echo '<tr id="' . $row['unique_id'] . '" onmouseover=showItem(' . $row['unique_id'] . ');>';
echo "<td>" . "<center>" . $row['custom_id'] . "</center>" . "</td>";
echo "<td>" . "<center>" . $row['name'] . "</center>" . "</td>";
echo "<td>" . "<center>" . $row['barcode'] . "</center>" . "</td>";
echo "<td>" . "<center>" . $row['grupa'] . "</center>" . "</td>";
echo "<td>" . "<center>" . $row['quantity_type'] . "</center>" . "</td>";
echo "<td>" . "<center>" . $row['quantity_number'] . "</center>" . "</td>";
echo "<td>" . "<center>" . $row['obekt'] . "</center>" . "</td>";
echo "<td>" . "<center>" . $row['price_delivery'] . "</center>" . "</td>";
echo "<td>" . "<center>" . $row['price_sale'] . "</center>" . "</td>";
echo "<td style='width: 1%; padding-left: 1%; padding-right: 1%;' onclick='deleteItem(" . $row['unique_id'] . ");'><i class='fa fa-close'></i>"."</td>";
echo "</tr>";
}
} else {
//if no records in DB
}
?>
</tbody>
如果使用此代码,则无法刷新数据表。由于我开始使用ajax填充表,所以我无法使其看起来相同。我不知道如何添加onclick事件(每行都有自定义参数)。
这是我现在使用的代码:
<script type="text/javascript">
$(document).ready( function() {
$('#products_all').DataTable({
"language": {"url": "https://cdn.datatables.net/plug-ins/1.10.19/i18n/Bulgarian.json"},
"colReorder" : true,
"resetPaging" : false,
"columnDefs" : [{"orderable": false, "targets": 9 }],
"ajax" : "generate_json/get_items.php",
"columns" : [
{"data" : "custom_id"},
{"data" : "name"},
{"data" : "barcode"},
{"data" : "grupa"},
{"data" : "quantity_type"},
{"data" : "quantity_number"},
{"data" : "obekt"},
{"data" : "price_delivery"},
{"data" : "price_sale"},
{"data" : "delete"},
//{"data" : null, "defaultContent" : "<i style='padding: 5px;' class='fa fa-close'></i>"},
]
});
});
答案 0 :(得分:1)
您可以使用rowCallback
,在其中可以将所需的任何内容添加到行中,例如单击处理程序,类或更多内容。像这样:
"rowCallback": function( row, data ) {
$(row).addClass('myClass');
$(row).click(function() {
alert('hello');
});
}