Comunidad de diseño web y desarrollo en internet online

Orden en Datatable jquery.dataTables

Citar            
MensajeEscrito el 21 May 2019 01:22 pm
Estoy usando un data table de esos que están regados pro la red, y que muchos hemos usado.. pero no he podido poner que al cargar (automáticamente) aparezca el orden DESC he visto en manuales, tutoriales y guías y nada me aclara..

https://datatables.net/examples/basic_init/table_sorting.html

donde se incluye el cambio de ese código para realizarlo.. (veo que es en donde esta el código que lo hace posible)

donde pongo esta parte que muestran para realizarlo...

Código Javascript :

$(document).ready(function() {
    $('#example').DataTable( {
        "order": [[ 3, "desc" ]]
    } );
} );


aca en este archivo?.. y si es aca en que parte... (que tengo ene l proyecto en una carpeta js2)
aca pongo ese archivo jquery.dataTables

https://drive.google.com/file/d/1IMYLFByyFpiroyF9q6q1hRyJcP97iMRi/view?usp=sharing

o es en el archivo del listado...

Código HTML :

<!DOCTYPE html>
<html>
   <title>Normatividad</title>
<head>
    <style type="text/css">
a:link {
   text-decoration: #000000;
}
a:visited {
   text-decoration: #000000;
}
a:hover {
   text-decoration: #000000;
}
a:active {
   text-decoration: #000000;
}
</style>
      <link rel="stylesheet" type="text/css" href="css2/jquery.dataTables.css">
      <script type="text/javascript" language="javascript" src="js2/jquery.js"></script>
      <script type="text/javascript" language="javascript" src="js2/jquery.dataTables.js"></script>
         <script type="text/javascript" language="javascript" >
         $(document).ready(function() {
            var dataTable = $('#employee-grid').DataTable( {
               "processing": true,
               "serverSide": true,
               "ajax":{
                  url :"adquisiciones-grid-data.php", // json datasource
                  type: "post",  // method  , by default get
                  error: function(){  // error handling
                     $(".employee-grid-error").html("");
                     $("#employee-grid").append('<tbody class="employee-grid-error"><tr><th colspan="3">No hay Datos</th></tr></tbody>');
                     $("#employee-grid_processing").css("display","none");
                     
                  }
               }
            } );
         } );
      </script>
      <style>
         div.container {
             margin: 0 auto;
             max-width:760px;
         }
         div.header {
             margin: 100px auto;
             line-height:30px;
             max-width:760px;
         }
         body {
             background: #ffffff;
             color: #333;
             font: 90%/1.45em "Helvetica Neue",HelveticaNeue,Verdana,Arial,Helvetica,sans-serif;
         }
      </style>
   </head>
   <body>
   <div class="container">
     <table id="employee-grid"  cellpadding="0" cellspacing="0" border="0" class="display" width="100%">
               <thead>
                  <tr>
                     <th width="50%">&nbsp;</th>
                     <th width="17%" bgcolor="#FFFFFF">&nbsp;</th>
                     <th width="8%" bgcolor="#FFFFFF">&nbsp;</th>
                 </tr>
               </thead>
         </table>
     <br>
   </div>
   </body>
</html>


o en este archivo que carga los datos...

Código PHP :

<?php
/* Database connection start */
include("access.php");
$conn = mysqli_connect($servername, $username, $password, $dbname) or die("Connection failed: " . mysqli_connect_error());
/* Database connection end */
// storing  request (ie, get/post) global array to a variable  
$requestData= $_REQUEST;
$columns = array( 
// datatable column index  => database column name
   0=>'id', 
   1=>'fecha',
   2=>'tipo',
   3=>'ciudad',
   4=>'descripcion',
   5=>'archivo',
); 
?>
<?php
$ciud = "Ciudad";
$tip = "escaner";
?>
<?php
$sql = "SELECT id, fecha, tipo, ciudad, descripcion, archivo FROM sales WHERE tipo = '".$tip."' ORDER BY fecha DESC, id DESC";
//$sql.=" ORDER BY fecha DESC, id DESC ";
$query=mysqli_query($conn, $sql) or die("");
$totalData = mysqli_num_rows($query);
$totalFiltered = $totalData;  
//------------------------------------------
if( !empty($requestData['search']['value']) ) {
   $sql = "SELECT id, fecha, tipo, ciudad, descripcion, archivo FROM sales";
    $sql.=" WHERE id LIKE '".$requestData['search']['value']."%' ";    // $requestData['search']['value'] contains search parameter
   $sql.=" OR descripcion LIKE '%".$requestData['search']['value']."%' ";
   $sql.=" OR fecha LIKE '%".$requestData['search']['value']."%' ";
   //$sql.=" OR fecha LIKE '".$requestData['search']['value']."%' ";
   $sql.=" OR archivo LIKE '".$requestData['search']['value']."%' ";
   $query=mysqli_query($conn, $sql) or die("");
   $totalFiltered = mysqli_num_rows($query);  
   $sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]."   ".$requestData['order'][0]['dir']."   LIMIT ".$requestData['start']." ,".$requestData['length']."   "; // $requestData['order'][0]['column'] contains colmun index, $requestData['order'][0]['dir'] contains order such as asc/desc , $requestData['start'] contains start row number ,$requestData['length'] contains limit length.
   $query=mysqli_query($conn, $sql) or die(""); // again run query with limit
//--------------------------------------------      
} else {   
   $sql = "SELECT id, fecha, tipo, ciudad, descripcion, archivo FROM sales WHERE tipo = '".$tip."'";
   $sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]."   ".$requestData['order'][0]['dir']."   LIMIT ".$requestData['start']." ,".        
   $requestData['length']."   ";
   $query=mysqli_query($conn, $sql) or die("");
//<A HREF="http://www.example.com/myfile.pdf#page=4">   
}
$data = array();
while( $row=mysqli_fetch_array($query) ) {  // preparing an array
   $nestedData=array(); 
   //<td><center><a target=\"_blank\" href="documentos/'.$row['archivo'].'">'.$row['fecha'].'</a></center></td>
   //<td><a target=\"_blank\" href="documentos/'.$row['archivo'].'">'.$row['descripcion'].'</a></td>
   //<td><center><a target=\"_blank\" href="documentos/'.$row['archivo'].'"><img src="pdf.png" width="30" height="35"></a></center></td>
   
   
   
   
   //$nestedData[] =  '<a href=/documentos/files/'.$row["archivo"].'.pdf#page='.$row["pagina"].' target="_blank">'.$row["numero"].'</a>';
   //$nestedData[] =  '<a target=\"_blank\" href="documentos/'.$row['archivo'].'">'.$row['id'].'</a>';
   $nestedData[] =  '<a target=\"_blank\" href="documentos/'.$row['archivo'].'">'.$row['descripcion'].'</a>';
   $nestedData[] =  '<a target=\"_blank\" href="documentos/'.$row['archivo'].'">'.$row['fecha'].'</a>';
   $nestedData[] =  '<a target=\"_blank\" href="documentos/'.$row['archivo'].'"><img src="pdf.png" width="30" height="35"></a>';
   //$nestedData[] =  '<a href=/normatividad/files/'.$row["archivo"].'.pdf#page='.$row["pagina"].' target="_blank">'.$row["ano"].'</a>';
   //$nestedData[] = '<a href=/normatividad/files/'.$row["archivo"].'.pdf#page='.$row["pagina"].' target="_blank">'.$row["descripcion"].'</a>';
   //$nestedData[] = '<a href=/normatividad/files/'.$row["archivo"].'.pdf#page='.$row["pagina"].' target="_blank">'.$row["fecha"].'</a>';
   //$nestedData[] = '<a href=/normatividad/files/'.$row["archivo"].'.pdf#page='.$row["pagina"].' target="_blank">'.$row["estado"].'</a>';
   
   $data[] = $nestedData;
}
$json_data = array(
         "draw"            => intval( $requestData['draw'] ),   // for every request/draw by clientside , they send a number as a parameter, when they recieve a response/data they first check the draw number, so we are sending same number in draw. 
         "recordsTotal"    => intval( $totalData ),  // total number of records
         "recordsFiltered" => intval( $totalFiltered ), // total number of records after searching, if there is no searching then totalFiltered = totalData
         "data"            => $data   // total data array
         );
echo json_encode($json_data);  // send data as json format
?>



de verdad ayúdenme con esto, estaré eternamente agradecido!!!

Por flashtrix

21 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 21 May 2019 06:06 pm
Estas creando una tabla usando JS que carga la data de un PHP que hace una consulta a una base de datos, por lo que eso tarda tiempo. Veo que la carga se hace con el metodo Ajax que supongo que es el de Jquery, con lo cual podrias intentar usar el done

Código :

 "ajax":{
                  url :"adquisiciones-grid-data.php", // json datasource
                  type: "post",  // method  , by default get
                  done: function(){
                      $('#employee-grid').DataTable( {
                           "order": [[ 3, "desc" ]]
                        } );
                  },
                  error: function(){  // error handling
                     $(".employee-grid-error").html("");
                     $("#employee-grid").append('<tbody class="employee-grid-error"><tr><th colspan="3">No hay Datos</th></tr></tbody>');
                     $("#employee-grid_processing").css("display","none");
                     
                  }


Quizas todavia no la haya hecho, y tengas que darle un delay con setTimeout, por ejemplo

Código :

                 ...
               done: function(){
                   setTimeout(function(){
                      $('#employee-grid').DataTable( {
                           "order": [[ 3, "desc" ]]
                        } )
                     }, 1000); //esto es 1 sg
                  },
                  ...


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 21 May 2019 06:55 pm
Hola Jorge te cuento ese código que te envíe es uno que tome del mismo ejemplo que descargue del datatable..
por lo que solo lo he adaptado a mi necesidad (campos, Bd, etc.) de resto no he movido nada..

de verdad es algo que solo lo adapto a mis necesidades y me funciona pero esta vez necesito que se despliegue la información en Forma DESC (es decir a medida que baya agregando esta vaya apareciendo de primero y no como aparece en este ejemplo pues va saliendo consecutivamente hacia abajo ASC)

incluyo la parte del codigo donde me dices pero aun al cargar me sigue mostrando los resultados igual

Por flashtrix

21 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 21 May 2019 10:01 pm
Pude realizarlo alli a prueba y error solo poniendo esta linea "aaSorting": [[ 1, "desc" ]], el numero indica la columna a aplicar el ordenado desc.. Gracias (todo vien dentro del archivo listar.)

Código :

$(document).ready(function() {
            var dataTable = $('#employee-grid').DataTable( {
               //-----------esta linea Organiza DESC------------------
              "aaSorting": [[ 1, "desc" ]],
              //------------------------------------------------
               "processing": true,
               "serverSide": true,
               "ajax":{

Por flashtrix

21 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.