Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/01/2015, 14:29
plitre_sys19
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 13 años, 2 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