Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Paginador

Estas en el tema de Paginador en el foro de Frameworks JS en Foros del Web. Buenas tardes amigos del foro, por favor me pueden ayudar con un problema gracias por la atención, tengo un paginador hecho en php con ajax, ...
  #1 (permalink)  
Antiguo 11/11/2008, 14:48
Avatar de PICOROFG  
Fecha de Ingreso: febrero-2008
Ubicación: Quito, Ecuador, Ecuador
Mensajes: 120
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Paginador

Buenas tardes amigos del foro, por favor me pueden ayudar con un problema gracias por la atención, tengo un paginador hecho en php con ajax, el cual obtiene datos de una base de datos Mysql. Mi problema es : cuando hago una consulta a la base ingresando un parámetro de búsqueda me despliega solo la primera página, al momento de navegar por las demás no salen los demás datos que son de la consulta.
Cuando hago una consulta sin parámetros el paginador funciona perfectamente
  #2 (permalink)  
Antiguo 11/11/2008, 15:24
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Paginador

Hola:

Sin ver el código es difícil saber el problema... , pero si quieres ver un sistema que parece funcionar bien con Ajax, puedes ver esta galería: Ajax: Galería de imágenes paginada... también estoy procurando que sea accesible, pero aún falta trabajarse un poco más...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 12/11/2008, 07:11
Avatar de PICOROFG  
Fecha de Ingreso: febrero-2008
Ubicación: Quito, Ecuador, Ecuador
Mensajes: 120
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Paginador

Hola caricatos, gracias por la atención
pongo aquí mi código
ajax.js

function objetoAjax(){
var xmlhttp=false;
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

function Pagina(nropagina){

divContenido = document.getElementById('contenido');

ajax=objetoAjax();

ajax.open("GET", "paginador.php?pag="+nropagina);

ajax.onreadystatechange=function() {
if (ajax.readyState==4) {

divContenido.innerHTML = ajax.responseText
}
}

ajax.send(null)
}

paginador.php


paginador.php
Código PHP:

<?php 
session_start
();  
if(!isset(
$SESSION)){  
header("location:../../index.php");  
} else {  
$bd_host "localhost";  
$bd_usuario "root";  
$bd_password "3760";  
$bd_base "recetario";  
$con mysql_connect($bd_host$bd_usuario$bd_password);  
mysql_select_db($bd_base$con);  
$RegistrosAMostrar=4
$id=$_GET["opcion"]; 


if(isset(
$_GET['pag'])){ 
$RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar
$PagAct=$_GET['pag']; 


$Resultado=mysql_query("SELECT * FROM receta_hospitalaria WHERE ID_RH='$id' LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con); 
echo 
"<table border='1px'>"
echo
"<tr class='encabezado'>"
   echo
"<td>N&uacute;mero de Receta</td>"
   echo
"<td>Apellidos</td>"
   echo
"<td>Nombres</td>"
   echo
"<td>Edad</td>"
   echo
"<td>Historia Cl&iacute;nica</td>"
   echo
"<td>CIE-10</td>"
   echo
"<td>Servicio</td>"
   echo
"<td>Sala</td>"
   echo
"<td>Cama</td>"
   echo
"<td>Fecha Prescripci&oacute;n</td>"
   echo
"<td>Fecha Dispensaci&oacute;n</td>"
   echo
"<td>Valor Total</td>"
   echo
"<td>Nombre del Presriptor</td>"
   echo
"<td>C&oacute;digo del Prescriptor</td>"
   echo
"<td>Nombre del Dispensador</td>"
   echo
"<td>C&oacute;digo del Dispensador</td>"
   echo
"<td>Nombre del Usuario Receptor</td>"
   echo
"<td>C&eacute;dula</td>"
   echo
"<td>Parentesco</td>"
  echo
"</tr>"
while(
$MostrarFila=mysql_fetch_array($Resultado)){ 
echo 
"<tr>"
echo 
"<td>".utf8_encode($MostrarFila['ID_RH'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['APELLIDOS'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['NOMBRES'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['EDAD'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['N_HCLINICA'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['CIE10'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['SERVICIO'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['SALA'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['CAMA'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['FECHAP'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['FECHAD'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['VALOR_TOTAL'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['N_PRESCRIPTOR'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['CODIGOP'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['N_DISPENSADOR'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['CODIGOD'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['NOMBRE_UE'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['CEDULA'])."</td>"
echo 
"<td>".utf8_encode($MostrarFila['PARENTESCO'])."</td>"

echo 
"</tr>"

echo 
"</table>"
}else{ 
$RegistrosAEmpezar=0
$PagAct=1

$Resultado=mysql_query("SELECT * FROM receta_hospitalaria WHERE ID_RH='$id' LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con); 
echo 
"<table border='1px'>"
echo
"<tr class='encabezado'>"
   echo
"<td>N&uacute;mero de Receta</td>"
   echo
"<td>Apellidos</td>"
   echo
"<td>Nombres</td>"
   echo
"<td>Edad</td>"
   echo
"<td>Historia Cl&iacute;nica</td>"
   echo
"<td>CIE-10</td>"
   echo
"<td>Servicio</td>"
   echo
"<td>Sala</td>"
   echo
"<td>Cama</td>"
   echo
"<td>Fecha Prescripci&oacute;n</td>"
   echo
"<td>Fecha Dispensaci&oacute;n</td>"
   echo
"<td>Valor Total</td>"
   echo
"<td>Nombre del Presriptor</td>"
   echo
"<td>C&oacute;digo del Prescriptor</td>"
   echo
"<td>Nombre del Dispensador</td>"
   echo
"<td>C&oacute;digo del Dispensador</td>"
   echo
"<td>Nombre del Usuario Receptor</td>"
   echo
"<td>C&eacute;dula</td>"
   echo
"<td>Parentesco</td>"
  echo
"</tr>"
while(
$MostrarFila=mysql_fetch_array($Resultado)){ 
echo 
"<tr>"
 echo 
"<td>".$MostrarFila['ID_RH']."</td>"
  echo 
"<td>".$MostrarFila['APELLIDOS']."</td>"
  echo 
"<td>".$MostrarFila['NOMBRES']."</td>"
  echo 
"<td>".$MostrarFila['EDAD']."</td>"
  echo 
"<td>".$MostrarFila['N_HCLINICA']."</td>"
  echo 
"<td>".$MostrarFila['CIE10']."</td>"
  echo 
"<td>".$MostrarFila['SERVICIO']."</td>"
  echo 
"<td>".$MostrarFila['SALA']."</td>"
  echo 
"<td>".$MostrarFila['CAMA']."</td>"
  echo 
"<td>".$MostrarFila['FECHAP']."</td>"
  echo 
"<td>".$MostrarFila['FECHAD']."</td>"
  echo 
"<td>".$MostrarFila['VALOR_TOTAL']."</td>"
  echo 
"<td>".$MostrarFila['N_PRESCRIPTOR']."</td>"
  echo 
"<td>".$MostrarFila['CODIGOP']."</td>"
  echo 
"<td>".$MostrarFila['N_DISPENSADOR']."</td>"
  echo 
"<td>".$MostrarFila['CODIGOD']."</td>"
  echo 
"<td>".$MostrarFila['NOMBRE_UE']."</td>"
  echo 
"<td>".$MostrarFila['CEDULA']."</td>"
  echo 
"<td>".$MostrarFila['PARENTESCO']."</td>"
echo 
"</tr>"

echo 
"</table>"



$NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM receta_hospitalaria WHERE ID_RH='$id'",$con)); 
$PagAnt=$PagAct-1
$PagSig=$PagAct+1
$PagUlt=$NroRegistros/$RegistrosAMostrar


$Res=$NroRegistros&#37;$RegistrosAMostrar; 

if($Res>0$PagUlt=floor($PagUlt)+1

//desplazamiento 
echo "<a onclick=\"Pagina('1')\">Primero</a> "
if(
$PagAct>1) echo "<a onclick=\"Pagina('$PagAnt')\">Anterior</a> "
echo 
"<strong>Pagina ".$PagAct."/".$PagUlt."</strong>"
if(
$PagAct<$PagUlt) echo " <a onclick=\"Pagina('$PagSig')\">Siguiente</a> "
echo 
"<a onclick=\"Pagina('$PagUlt')\">Ultimo</a>"




Gracias por la ayuda

Última edición por PICOROFG; 12/11/2008 a las 09:32
  #4 (permalink)  
Antiguo 12/11/2008, 09:04
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Paginador

No lo vi en profundidad, pero mandás sólo la variable pag por get y en tu consulta usás $id=$_POST["opcion"]; ???
  #5 (permalink)  
Antiguo 12/11/2008, 09:31
Avatar de PICOROFG  
Fecha de Ingreso: febrero-2008
Ubicación: Quito, Ecuador, Ecuador
Mensajes: 120
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Paginador

Si trate por por get también estaba probando pero tampoco funciona al parecer se pierde el moemento del envío la variable no se donde ..... no se si me pueden ayudar a ubicar ese error o una solución posible al problema
  #6 (permalink)  
Antiguo 12/11/2008, 09:50
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Paginador

Y cómo la estabas enviando?. Conviene escaparlas y agregar un valor randómico para evitar cacheo:
Código PHP:
ajax.open("GET""paginador.php?pag="+escape(nropagina)+'&otracosa='+escape(valor)+'&'+Math.random(),true); 
  #7 (permalink)  
Antiguo 12/11/2008, 10:06
Avatar de PICOROFG  
Fecha de Ingreso: febrero-2008
Ubicación: Quito, Ecuador, Ecuador
Mensajes: 120
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Paginador

Interesante la solución, lo probaré de la forma que me explicas, gracias por la ayuda

Saludos
  #8 (permalink)  
Antiguo 20/11/2008, 12:16
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Paginador

Hola:

Solo quería comentar que me parece que no es una paginación eficiente, ya que puedes recibir los mismos datos varias veces... si al hacer una nueva petición, en vez de usar siempre el mismo contenedor, ocultas el que tenias visible, y creas uno nuevo para la nueva, en el momento que pidan una página "visitada" tan solo se tendría que mostrar.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 04:23.