2017-07-06 22 views
0

*私はちょうど私datatable行の並べ替えの拡張子に突っ込まれて助けてください。 Datatableは正常に動作していますが、並べ替えはうまくいきますが、ページの再読み込み後に並べ替えが失われないようにしたいと思います。 マイテーブルのデータがデータベースから送信されています。あなたはユーザーごとのそれをしたい場合は、おそらくあなたのデータベースに順序を保存する必要がある、またはセッション/クッキーでページリロード後も同じdatatable行の並べ替えを保持したい

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>Admin Page </title> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
    <link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.15/css/jquery.dataTables.css"> 
    <script src="//code.jquery.com/jquery-1.12.4.js"></script> 
    <link rel="stylesheet" href="https://cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css"> 
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.2.0/css/rowReorder.dataTables.min.css"> 
<script src="https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script> 
<script src="https://cdn.datatables.net/rowreorder/1.2.0/js/dataTables.rowReorder.min.js"></script> 
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.15/js/jquery.dataTables.js"></script> 

    <script type="text/javascript"> 
     $(document).ready(function() { 
    $('#table_id').DataTable({ 
     rowReorder: true, 
     update: false 
    }); 


    table.on('row-reorder', function (e, diff, edit) { 
     var result = 'Reorder started on row: '+edit.triggerRow.data()[1]+'<br>'; 

     for (var i=0, ien=diff.length ; i<ien ; i++) { 
      var rowData = table.row(diff[i].node).data(); 

      result += rowData[1]+' updated to be in position '+ 
       diff[i].newData+' (was '+diff[i].oldData+')<br>'; 
     } 

     $('#result').html('Event result:<br>'+result); 

    }); 
}); 
    </script> 

</head> 
<body> 

<div class="container"> 
    <h2>Manage registered user</h2> 

    <table class="table table-bordered" id="table_id"> 
    <thead> 
     <tr> 
     <th>ID</th> 
     <th>Firstname</th> 
     <th>Lastname</th> 
     <th>Email</th> 
     <th>Action</th> 
     </tr> 
    </thead> 
    <tbody> 
    <?php foreach ($news as $news_item): ?> 
     <tr> 
     <td><?php echo $news_item['id']; ?></td> 
     <td><?php echo $news_item['fname']; ?></td> 
     <td><?php echo $news_item['lname']; ?></td> 
     <td><?php echo $news_item['email']; ?></td> 
     <td> 

       <a href="<?php echo site_url('admin_ctrl/admin_crud_edit_ctrl/'.$news_item['id']); ?>">Edit</a> | 
       <a href="<?php echo site_url('admin_ctrl/admin_crud_del_ctrl/'.$news_item['id']);?>" onClick="return confirm('Are you sure you want to delete?')">Delete</a> | 
       <a href="<?php echo site_url('admin_ctrl/change_user_ctrl/'.$news_item['id']); ?>">Make Him Admin</a> 
     </td> 
     </tr> 
     <?php endforeach; ?> 
    </tbody> 
    </table> 
</div> 

</body> 
</html> 

答えて

0

- *

は、ここでは、私のコードです。

'row-reorder'関数を公式のExampleからコピー&ペーストして、各行の順序をどこかに保存するように修正しました。次に、Datatableを初期化するときにこれらの値を使用します。あなたが必要とする

すべてがこれら二つのリンクにする必要があります:

https://www.datatables.net/extensions/rowreorder/examples/initialisation/defaults.html

https://datatables.net/extensions/rowreorder/examples/initialisation/events.html

私は、このプロセスを自動化する方法があるとは思わないが、私は多くの場合、DataTableのはいくつかを持っていたことが分かりました私は間違っているかもしれません。

関連する問題