【问题标题】:Add events to tag in Datatables将事件添加到数据表中的标记
【发布时间】:2018-08-30 21:58:56
【问题描述】:

所以我决定使用 Datatables,我设法让 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>"},

       ]  
  });  

});

【问题讨论】:

标签: php jquery ajax datatables


【解决方案1】:

您可以使用rowCallback,在那里您可以向行中添加任何您想要的内容,例如点击处理程序、类或更多内容。像这样的:

"rowCallback": function( row, data ) {
  $(row).addClass('myClass');
  $(row).click(function() {
    alert('hello');
  });    
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-26
    • 2023-03-30
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多