Foros del Web » Programando para Internet » PHP »

Filtrar datos en datatable jquery php

Estas en el tema de Filtrar datos en datatable jquery php en el foro de PHP en Foros del Web. Holaa, escribo en esta oportunidad porque estoy trabajando con el datatable del lado del servidor pero quiero hacerle búsqueda especifica, es decir, con fecha que ...
  #1 (permalink)  
Antiguo 09/01/2015, 13:25
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Filtrar datos en datatable jquery php

Holaa, escribo en esta oportunidad porque estoy trabajando con el datatable del lado del servidor pero quiero hacerle búsqueda especifica, es decir, con fecha que al seleccionar un fecha me filtre todos los libros de esa fecha, que me recomiendan hacer?
  #2 (permalink)  
Antiguo 09/01/2015, 14:15
 
Fecha de Ingreso: octubre-2014
Ubicación: Buenos Aires
Mensajes: 278
Antigüedad: 9 años, 6 meses
Puntos: 12
Respuesta: Filtrar datos en datatable jquery php

Por favor plitre_sys19, pon algo de código para que podamos ayudarte.

Gracias.

Saludos.
__________________
http://www.sp-vision.net
  #3 (permalink)  
Antiguo 09/01/2015, 14:29
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Filtrar datos en datatable jquery php

Cita:
Iniciado por mauritosuarez Ver Mensaje
Por favor plitre_sys19, pon algo de código para que podamos ayudarte.

Gracias.

Saludos.
Hola mauritosuarez gracias por responderme, este es el código que tengo en el js
Código:
$(document).ready(function(){
	var oOverviewTable=$('#example').dataTable({
		"bProcessing": true,
		"bServerSide": true,
		"sAjaxSource": 'include/funciones/server_processing_fechas.php'
	});
});
en el server_processing_fechas.php
Código PHP:
    /* Matriz de columnas de base de datos que debe ser leído y enviado de vuelta a DataTables.*/
    
$aColumns=array('nombre'apellido', 'idFecha', 'FechaRegistro', 'motivo');
    /* Columna indexada (utilizado para una rápida y precisa cardinalidad de la tabla) */
    $sIndexColumn="idUsuario";
    /*Tabla de la bd a usar*/
    $sTable="libro";
    require_once('
../clases/conexion.php');
    $link=new Conexion();
    $conexion=$link->conectar();

    /*Paginación*/
    /* 
     * Paging
     */
    $sLimit = "";
    if ( isset( $_GET['
iDisplayStart'] ) && $_GET['iDisplayLength'] != '-1' )
    {
        $sLimit = "LIMIT ".$conexion->real_escape_string( $_GET['
iDisplayStart'] ).", ".
            $conexion->real_escape_string( $_GET['
iDisplayLength'] );
    }
    /*
     * Ordering
     */
    if ( isset( $_GET['
iSortCol_0'] ) )
    {
        $sOrder = "ORDER BY  ";
        for ( $i=0 ; $i<intval( $_GET['
iSortingCols'] ) ; $i++ )
        {
            if ( $_GET[ '
bSortable_'.intval($_GET['iSortCol_'.$i]) ] == "true" )
            {
                $sOrder .= $aColumns[ intval( $_GET['
iSortCol_'.$i] ) ]."
                     ".$conexion->real_escape_string( $_GET['
sSortDir_'.$i] ) .", ";
            }
        }
        $sOrder = substr_replace( $sOrder, "", -2 );
        if ( $sOrder == "ORDER BY" )
        {
            $sOrder = "";
        }
    }
    /* 
     * Filtering
     * NOTE this does not match the built-in DataTables filtering which does it
     * word by word on any field. It'
s possible to do herebut concerned about efficiency
     
on very large tables, and MySQL's regex functionality is very limited
     */
    $sWhere = "";
    if ( $_GET['
sSearch'] != "" )
    {
        $sWhere = "WHERE (";
        for ( $i=0 ; $i<count($aColumns) ; $i++ )
        {
            $sWhere .= $aColumns[$i]." LIKE '
%".$conexion->real_escape_string( $_GET['sSearch'] )."%' OR ";
        }
        $sWhere = substr_replace( $sWhere, "", -3 );
        $sWhere .= '
)';
    }
    
    /* Individual column filtering */
    /*
     * SQL queries
     * Get data to display
     */
    $sQuery = "
        SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", implode(", ", $aColumns))."
        FROM   $sTable
        $sWhere
        $sOrder
        $sLimit
    ";
    $rResult = $conexion->query($sQuery) or die($conexion->error());
    /* Data set length after filtering */
    $sQuery = "
        SELECT FOUND_ROWS()
    ";
    $rResultFilterTotal = $conexion->query($sQuery) or die($conexion->error());
    $aResultFilterTotal = $rResultFilterTotal->fetch_array();
    $iFilteredTotal = $aResultFilterTotal[0];
    
    /* Total data set length */
    $sQuery = "
        SELECT COUNT(".$sIndexColumn.")
        FROM   $sTable
    ";
    $rResultTotal = $conexion->query($sQuery) or die($conexion->error());
    $aResultTotal = $rResultTotal->fetch_array();
    $iTotal = $aResultTotal[0];

    $output=array(
        "sEcho"=>intval($_GET['
sEcho']),
        "iTotalRecords"=>$iTotal,
        "iTotalDisplayRecords"=>$iFilteredTotal,
        "aaData"=>array()
    );

    while($aRow = $rResult->fetch_array())
    {
        $row=array();

        for($i=0; $i<count($aColumns);$i++)
        {
            
            
            if($aColumns[$i]!=' ')
            {
                    $row[]=$aRow[$aColumns[$i]];
            
            }
            
        }
        $output['
aaData][]=$row;
    }
    echo 
json_encode($output); 
estuve leyendo por internet y vi en esta página http://www.datatables.net/examples/p...filtering.htmlse puede hacer rango de búsqueda pero en si lo que quiero hacer es solo personalizar mi búsqueda, es decir, tengo dos option uno visualizar los datos diaria(fecha de hoy) y otro mensual (mes y año), como puedo hacer que al seleccionar diario me filtre con la fecha de hoy? y al seleccionar mensual me filtre por el mes y año? el campo para el filtro es fechaRegistro

Última edición por plitre_sys19; 09/01/2015 a las 14:35

Etiquetas: datatable, fecha, filtrar, jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:16.