数据表重新排序保存到数据库

时间:2015-11-22 18:35:54

标签: javascript php jquery mysql datatable

大家好,我正在努力重新排序数据表。我想在用户重新排序时更新数据库中的表。为此,我需要:

  1. 配置数据表以将请求发送到将处理数据的服务器文件;
  2. 将以什么格式发送数据表以确切知道php文件将处理什么。
  3. 我已阅读文档,但我不清楚如何将请求从datatable发送到文件以及如何将其存储在数据库中。

    http://www.datatables.net/reference/option/#rowreorder

    这是我的代码

      $(document).ready(function () {
        var table =    $('#dattab').DataTable({rowReorder: true,
            dom: 'Bfrtip',
            buttons: [
            'copyHtml5', 'excelHtml5', 'csvHtml5','pdfHtml5'
        ]
        });       
    });
    

    我已经尝试了文档中的一些选项和事件,但我还没有看到帖子请求。

    如何在数据库中存储以及在MYSQL中的表中需要哪些字段。

1 个答案:

答案 0 :(得分:0)

我已经使它工作了......使用旧的PHP是我的错误。我将分享我的解决方案:

首先是初始化代码:

var table = $('#dattab').DataTable({
     rowReorder: {
         selector: 'tr',
         //   update: true,
         //   dataSrc: '.ord-id'
     },
     dom: 'Bfrtip',
     buttons: [
         'copyHtml5', 'excelHtml5', 'csvHtml5', 'pdfHtml5'
     ]
 });

第二个我需要附加事件发送ajax请求我已尝试重新排序但它没有帮助我因为某些原因它在桌子上发送一个重绘旧,所以我使用绘制事件,它发送重绘表时的ajax:

$('#dattab').on('draw.dt', function () {
       if ($('#dattab').data('tabs')) {
           var rows = table.rows().data();
           var ord = new Array();
           for (var i = 0, ien = rows.length; i < ien; i++) {
               ord[i] = rows[i].DT_RowId;
           }
           post_order(ord, $('#dattab').data('tabs'));
       }
   });

第三,我需要一个PHP脚本来处理重新排序:

if( $_POST['elem'] && $_POST['table']) {
$i = 1;
$error = 0;
foreach ($_POST['elem'] as $row) {
    $q = "UPDATE " . "fit_" . $_POST["table"] . " set
        <code>order</code> = ".$i.  "
        ,updated_at = Now()
        WHERE id = " . GetSQLValueString($row, "int");

    $res = $mysqli->query($q);
    $i++;
    if(!$res)
    {
        $error++;
    }

}
if(!$error)
{
    echo 'success';
}
else{
    echo 'error';
}

我不知道这是问题的最佳答案,但它对我有用。