PHP paginar resultados con php y jquery ajax
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP paginar resultados con php y jquery ajax相关的知识,希望对你有一定的参考价值。
#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
if(count($where)>1)
{
$pasada = 0;
foreach($where as $condiciones)
{
if($pasada == 0)
{
$query_pag_data .=" WHERE ".$condiciones["campo_bd"]." ".$condiciones["condicion"]." '".$condiciones["dato"]."'";
}
elseif(count($where) > 1 && $pasada == 1)
{
$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");
$count_result=mysql_num_rows($result_pag_data);
#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");
$row = mysql_fetch_array($result_pag_num);
$count = $row['count'];
$total = (ceil($count/$porPagina)-1);
#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;
while ($row = mysql_fetch_array($result_pag_data))
{
$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>";
}
return compact('Tablapaginado','listaPaginador');
}
#llamar funcion
extract(paginarResultados("cliente",'',$page,15,true,true,true,$campos,$link_perfiles));
#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);
});
});
以上是关于PHP paginar resultados con php y jquery ajax的主要内容,如果未能解决你的问题,请参考以下文章
php paginacion paginar lista paginas pagina listado
php paginacion paginar lista listado pagina limit limite offsetpaginaapginación
java mostrar resultado en texview