/ Published in: PHP
paginar resultados con jquery y ajax, permite ingresar condiciones (where, like, =...)
solo se ingresa el nombre de los campos de la base de datos que se desean listar
ver opciones.
solo se ingresa el nombre de los campos de la base de datos que se desean listar
ver opciones.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#Funcion para paginar resultados con condiciones #opciones: #$where = array(array(campo_bd => "campo_1", condicion => '=', dato => '1234'),array(campo_bd => "campo_2", condicion => 'LIKE', dato => '1234')); #$campos = array('campo_1','campo_2','campo_3','campo_4'); #autor: Luis Jofre G. function paginarResultados($tabla,$where,$pagina,$porPagina,$btn_inicio,$btn_final,$numeros,$campos,$conn) { echo '<input type="hidden" id="paginaHidden" value="'.$pagina.'" />'; $start = $pagina * $porPagina; if($pagina == 0){ $pagina = 1; } #consulta obtener datos $query_pag_data = "SELECT * FROM ".$tabla.""; #si existen condiciones se concatenan { $pasada = 0; foreach($where as $condiciones) { if($pasada == 0) { $query_pag_data .=" WHERE ".$condiciones["campo_bd"]." ".$condiciones["condicion"]." '".$condiciones["dato"]."'"; } { $query_pag_data .= " AND ".$condiciones["campo_bd"]." ".$condiciones["condicion"]." '".$condiciones["dato"]."'"; } $pasada = 1; } } $query_pag_data .= " LIMIT $start, $porPagina"; #echo "\n<br>".__FUNCTION__.": <pre>".$query_pag_data."</pre>".mysql_error($conn); $result_pag_data=mysql_query($query_pag_data,$conn)or die("Error en: ".__FUNCTION__." - Funcion obtener datos"); #obtener total $query_pag_num = "SELECT COUNT(*) AS count FROM ".$tabla; #echo "\n<br>".__FUNCTION__.": <pre>".$query_pag_num."</pre>".mysql_error($conn); $result_pag_num=mysql_query($query_pag_num,$conn)or die("Error en: ".__FUNCTION__." - Funcion obtener cantidad total"); $count = $row['count']; #validaciones if($btn_inicio==true) { if($pagina>1) { $btn_inicio_html = "<li id='1'><<</li>"; $btn_inicio_html .= "<li id='".($pagina-1)."'><</li>"; } } if($btn_final==true) { if($total > 0 || $pagina != $total ){ if($pagina<$total) { $btn_final_html = "<li id='".($pagina+1)."'>></li>"; $btn_final_html .= "<li id='".($total)."'>>></li>"; } } } if($count_result > 0) { $listaPaginador = '<tr> <td colspan="5" class="listado_blanco"><b>Pagina <span id="Npagina">'.$pagina.'</span> de '.$total.'</b> <table border="0" cellspacing="0"> <tr> <td><div id="pagination" align="center"> <ul>'.$btn_inicio_html.'</ul> </div> </td> <td><select id="select_paginador">'; for($i=1; $i<=$total; $i++) { if($total >= $i) { if($pagina == $i){ $selected = "selected='selected'"; }else{ $selected = ""; } $listaPaginador .= '<option '.$selected.' value="'.$i.'">'.$i.'</option>'; } } $listaPaginador .= '</select></td> <td><div id="pagination" align="center"> <ul>'.$btn_final_html.'</ul> </div> </td> </tr> </table> </td> </tr>'; $numero = $start+1; { $Tablapaginado .= '<tr class="listado_plomo">'; if($numeros == true){ $Tablapaginado .= '<td>'.$numero.'</td>'; } foreach($campos as $campo){ $Tablapaginado .= '<td>'.$row[$campo].'</td>'; } $Tablapaginado .= '</tr>'; $numero++; } } else { $listaPaginador = ""; $Tablapaginado = "<td colspan=".count($campos)." class='listado_plomo'>No se encontraron resultados</td>"; } } #llamar funcion #armar tabla echo '<table border="1" cellspacing="0" valign="top" align="center" width="90%">'; echo $listaPaginador; echo '<tr> <td colspan="5" class="titulo_negro" height="32" align="center"> Listado de Clientes</td> </tr> <tr class="titulo_negro"> <td width="1%">N°</td> <td width="5%">Rut</td> <td width="30%">Nombre</td> <td width="35%">Dirección</td> <td width="20%">Giro</td> </tr>'; echo $Tablapaginado; echo $listaPaginador; echo '</table>'; #jquery jQuery(document).ready(function ($) { function loading_show(){ $('#loading').html("<img src='../images/loading.gif'/>").fadeIn('fast'); } function loading_hide(){ $('#loading').html(''); } function loadData(page){ loading_show(); $.ajax({ type: "POST", url: "datos.php", data: "page="+page, success: function(data){ $("#resultadosClientes").ajaxComplete(function(event, request, settings){ loading_hide(); $("#resultadosClientes").html(data); }); } }); } loadData(0); //cargar pagina primera vez $('#pagination li').live('click',function(){ var page = this.id; loadData(page); }); $('#select_paginador').live('change',function(){ var page = this.value; loadData(page); $('#select_paginador option[value='+$("#paginaHidden").val()+']').attr('selected', true); }); });