2016-08-12 3 views
1

Ich verwende Datatables in einer Website, um MySQL-Datensätze anzuzeigen. Mein Problem ist, dass beim ersten Laden der Seite, die Datensätze nicht wie erwartet von der Abfrage angezeigt werden. Hier können Sie die Abfrage haben, ‚vigencia‘ ist ein Feld vom Typ Datum und die Aufzeichnungen werden durch absteigend Datum ‚vigencia‘ nicht sortiert:Daten nicht sortiert mit Datatables

// Execute job 
    if ($job == 'get_companies'){ 

    // Get companies 
    $query = "SELECT * FROM tb_documentos LEFT JOIN tbl_uploads ON tb_documentos.id_doc = tbl_uploads.doc ORDER BY vigencia DESC"; 
    $query = mysqli_query($db_connection, $query); 
    if (!$query){ 
     $result = 'error'; 
     $message = 'query error'; 
    } else { 
     $result = 'success'; 
     $message = 'query success'; 
     while ($company = mysqli_fetch_array($query)){ 

     $imagen = "<a href='uploads/uploads/".$company['file']."''><img src='uploads/uploads/".$company['file']."' width='80' height='60'>"; 
     $mysql_data[] = array(

      "numero_identificador" => $company['numero_identificador'], 
      "serie" => $company['serie'], 
      "numero_documento"  => $company['numero_documento'], 
      "tipo_documento"  => $company['tipo_documento'], 
      "vigencia"  => $company['vigencia'], 
      "archivo" => $imagen 
     ); 
     } 
    } 

Und hier der JS-Code:

// On page load: datatable 
    var table_companies = $('#table_companies').dataTable({ 
    "ajax": "data_vencimientos.php?job=get_companies", 
    "columns": [ 

     { "data": "numero_identificador" }, 
     { "data": "serie" }, 
     { "data": "numero_documento" }, 
     { "data": "tipo_documento" }, 
     { "data": "vigencia", }, 
     { "data": "archivo" } 
    ], 
    "aoColumnDefs": [ 
     { "bSortable": false, "aTargets": [-1] } 
    ], 
    "lengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]], 
    "oLanguage": { 
     "oPaginate": { 
     "sFirst":  " ", 
     "sPrevious": " ", 
     "sNext":  " ", 
     "sLast":  " ", 
     }, 
     "sLengthMenu": "Documentos por pagina: _MENU_", 
     "sInfo":   "Total de _TOTAL_ documentos (mostrando del _START_ al _END_)", 
     "sInfoFiltered": "(filtrados _MAX_ documentos)" 
    } 
    }); 

Nach dem ersten Laden der Seite kann ich die Datensätze korrekt sortieren, indem ich auf den Spaltenüberschriftenkopf klicke.

Was soll ich ändern, um die Datensätze nach 'Vigencia' sortiert anzeigen zu lassen (Datumsfeld vom Typ YYYY-m-d, ex. 2016-08-12)?

Antwort

0

Blick tiefer in den Datentabellen Dokumentation habe ich, dass Sie habe gerade die Sortierreihenfolge ändern kann mit einem Parameter in der AJAX-Funktion, wie dies in meinem Fall:

„Ordnung“: [[3, Abs“ "]],

Und es funktioniert jetzt.

Danke, Sie.

Verwandte Themen