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

Problema paginacion con variable

Estas en el tema de Problema paginacion con variable en el foro de Frameworks JS en Foros del Web. Buenas, Tengo un problema con una paginación en ajax. A primera vista todo va bien, el problema es que necesito pasar mas de una variable ...
  #1 (permalink)  
Antiguo 06/05/2009, 11:49
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Problema paginacion con variable

Buenas,

Tengo un problema con una paginación en ajax.
A primera vista todo va bien, el problema es que necesito pasar mas de una variable y no se como hacerlo.

Los codigos que tengo son los siguientes:

ajax.js:
Código 1:
Ver original
  1. function objetoAjax(){
  2.  var xmlhttp=false;
  3.   try{
  4.    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.   }catch(e){
  6.    try {
  7.     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.    }catch(E){
  9.     xmlhttp = false;
  10.    }
  11.   }
  12.   if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  13.    xmlhttp = new XMLHttpRequest();
  14.   }
  15.   return xmlhttp;
  16. }
  17.  
  18. function Pagina(nropagina){
  19.  //donde se mostrará los registros
  20.  divContenido = document.getElementById('contenido');
  21.  
  22.  ajax=objetoAjax();
  23.  //uso del medoto GET
  24.  //indicamos el archivo que realizará el proceso de paginar
  25.  //junto con un valor que representa el nro de pagina
  26.  ajax.open("GET", "paginar_comentarios.php?pag="+nropagina);
  27.  divContenido.innerHTML= '<img src="anim.gif">';
  28.  ajax.onreadystatechange=function() {
  29.   if (ajax.readyState==4) {
  30.    //mostrar resultados en esta capa
  31.    divContenido.innerHTML = ajax.responseText
  32.   }
  33.  }
  34.  //como hacemos uso del metodo GET
  35.  //colocamos null ya que enviamos
  36.  //el valor por la url ?pag=nropagina
  37.  ajax.send(null)
  38. }

paginar_comentarios.php
Código 2:
Ver original
  1. <?php
  2. //Paginación de los comentarios.
  3.  
  4.  require('config.php');
  5.  $RegistrosAMostrar=3;
  6.  
  7. $id_articulo=$_GET['id'];
  8.  //estos valores los recibo por GET
  9.  if(isset($_GET['pag'])){
  10.   $RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
  11.   $PagAct=$_GET['pag'];
  12.   //caso contrario los iniciamos
  13.  }else{
  14.   $RegistrosAEmpezar=0;
  15.   $PagAct=1;
  16.  }
  17.  
  18.  $Resultado=mysql_query("SELECT * FROM comentarios WHERE id_articulo='$id_articulo' ORDER BY id DESC LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$conexion);
  19.  while($MostrarFila=mysql_fetch_array($Resultado)){
  20.    echo '<h3>
  21.         Down Side Callout</h3>
  22.     <div class="divContainerDown">
  23.         '.$MostrarFila['comentario'].'
  24.     </div>
  25.     <div class="calloutDown">
  26.         <div class="calloutDown2">
  27.         </div>
  28.     </div>
  29.     <div>
  30.         <a href="#"><img src="images/iconos/usuario_comentario.png" border="0">'.$MostrarFila['nick'].'</a> XX-XX-XX
  31.        
  32.     </div>';
  33.  }
  34.  
  35.  
  36.  //******--------determinar las páginas---------******//
  37.  $NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM comentarios WHERE id_articulo='$id_articulo'",$conexion));
  38.  $PagAnt=$PagAct-1;
  39.  $PagSig=$PagAct+1;
  40.  $PagUlt=$NroRegistros/$RegistrosAMostrar;
  41.  
  42.  //verificamos residuo para ver si llevará decimales
  43.  $Res=$NroRegistros%$RegistrosAMostrar;
  44.  // si hay residuo usamos funcion floor para que me
  45.  // devuelva la parte entera, SIN REDONDEAR, y le sumamos
  46.  // una unidad para obtener la ultima pagina
  47.  if($Res>0) $PagUlt=floor($PagUlt)+1;
  48.  
  49.  //desplazamiento
  50. echo "<a onclick='Pagina(1)'>Primero</a> ";
  51. if($PagAct>1) echo "<a onclick='Pagina($PagAnt)'>Anterior</a> ";
  52. echo "<strong>Pagina ".$PagAct."/".$PagUlt."</strong>";
  53. if($PagAct<$PagUlt) echo " <a onclick='Pagina($PagSig)'>Siguiente</a> ";
  54. echo "<a onclick='Pagina($PagUlt)'>Ultimo</a>";
  55. ?>

mostrar.php
Código 3:
Ver original
  1. <div id="contenido">
  2.   <?php include('paginar_comentarios.php')?>
  3.  </div>

Bueno, lo que intento hacer es una paginación de los comentarios que pertenecen a X articulo.

El problema esta en que necesito pasar la variable $id_articulo, para que la paginacion se haga correctamente y me muestre los comentarios escritos en ese articulo.

Entonces, la linea del problema esta aqui (creo):

Cita:
ajax.open("GET", "paginar_comentarios.php?pag="+nropagina);
Quiero pasar la id del articulo, lo he hecho de varias maneras, pero no se como pasarla:
Cita:
ajax.open("GET", "paginar_comentarios.php?id="$id"&pag="+nropagina) ;
La verdad sobre ajax, soy nulo y este script lo encontre por la red.

Bueno, muchas gracias
  #2 (permalink)  
Antiguo 06/05/2009, 15:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema paginacion con variable

Tienes que concatenar tus variables en Javascript:
Código javascript:
Ver original
  1. ajax.open("GET", "paginar_comentarios.php?id="+id+"&pag="+nropagina) ;

Luego pasale a tu funcion Pagina() el numero de pagina y el id del articulo como parametro.

Saludos.
  #3 (permalink)  
Antiguo 13/05/2009, 11:14
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Problema paginacion con variable

Ya esta solucionado, he hecho lo que me has dicho, y en paginar_comentarios, recojo el id del articulo...

Código paginar_comentarios:
Ver original
  1. <?php
  2. //Paginación de los comentarios.
  3.  
  4.  require('config.php');
  5.  $RegistrosAMostrar=3;
  6. $id_articulo=$_GET['id'];
  7.  
  8. echo "Esta es la puta identidad: $letra";
  9.  //estos valores los recibo por GET
  10.  if(isset($_GET['pag'])){
  11.   $RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
  12.   $PagAct=$_GET['pag'] and $_GET['id'];
  13.   //caso contrario los iniciamos
  14.  }else{
  15.   $RegistrosAEmpezar=0;
  16.   $PagAct=1;
  17.  }
  18.  
  19.  $Resultado=mysql_query("SELECT * FROM comentarios WHERE id_articulo='$id_articulo' ORDER BY id DESC LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$conexion);
  20.  while($MostrarFila=mysql_fetch_array($Resultado)){
  21.    echo '
  22.  <div class="divContainerDown">
  23.         '.$MostrarFila['comentario'].'<br><br>
  24.     </div>
  25.    
  26.     <div class="calloutDown">
  27.         <div class="calloutDown2">
  28.         </div>
  29.             <div class="votosCOM" style="position:absolute; font-size: 20px; font-family: verdana;  left: 208px; visibility: visible; ">0</div>
  30.         <div class="votarPOSITIVOCOM" style="position:absolute; font-size: 12px; font-family: verdana;  left: 830px; visibility: visible; "><img src="images/iconos/votar/positivo1.png"></div>
  31.       <div class="votarNEGATIVOCOM" style="position:absolute; font-size: 12px; font-family: verdana;  left: 830px; visibility: visible; "><img src="images/iconos/votar/negativo1.png"></div>
  32.    
  33.     </div>
  34.     <div>
  35.         <a href="#"><img src="images/iconos/usuario_comentario.png" border="0">'.$MostrarFila['nick'].'</a> XX-XX-XX
  36.           <center>
  37.                     <table align="center" style="margin-left: -520px;margin-top: -20px;">
  38.             <tr>
  39.                                     <th class="pagenav_next">
  40.                         <a href="http://youjoomla.info/joomla1.0/tv_guide/index.php?option=com_content&amp;task=view&amp;id=22&amp;Itemid=43">
  41.                             0</a>
  42.                     </th>
  43.                                 </tr>
  44.             </table></center>
  45.     </div><br>';
  46.  }
  47.  
  48.  
  49.  //******--------determinar las páginas---------******//
  50.  $NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM comentarios WHERE id_articulo='$id_articulo'",$conexion));
  51.  $PagAnt=$PagAct-1;
  52.  $PagSig=$PagAct+1;
  53.  $PagUlt=$NroRegistros/$RegistrosAMostrar;
  54.  
  55.  //verificamos residuo para ver si llevará decimales
  56.  $Res=$NroRegistros%$RegistrosAMostrar;
  57.  // si hay residuo usamos funcion floor para que me
  58.  // devuelva la parte entera, SIN REDONDEAR, y le sumamos
  59.  // una unidad para obtener la ultima pagina
  60.  if($Res>0) $PagUlt=floor($PagUlt)+1;
  61.  
  62.  //desplazamiento
  63. echo "<a onclick='Pagina(1,$id_articulo)'>Primero</a> ";
  64. if($PagAct>1) echo "<a onclick='Pagina($PagAnt,$id_articulo)'>Anterior</a> ";
  65. echo "<strong>Pagina ".$PagAct."/".$PagUlt."</strong>";
  66. if($PagAct<$PagUlt) echo " <a onclick='Pagina($PagSig,$id_articulo)'>Siguiente</a> ";
  67. echo "<a onclick='Pagina($PagUlt,$id_articulo)'>Ultimo</a>";
  68. ?>

Y la funcion ajax la he dejado asi:

Código:
function Pagina(nropagina, id_articulo){
 //donde se mostrará los registros
 divContenido = document.getElementById('contenido');
 divFormulario = document.getElementById('formulario');

 ajax=objetoAjax();
 //uso del medoto GET
 //indicamos el archivo que realizará el proceso de paginar
 //junto con un valor que representa el nro de pagina
 ajax.open("GET", "paginar_comentarios.php?pag="+nropagina+"&id="+id_articulo);
 divContenido.innerHTML= '<img src="cargando.gif">';
 ajax.onreadystatechange=function() {
  if (ajax.readyState==4) {
   //mostrar resultados en esta capa
   divContenido.innerHTML = ajax.responseText
  }
 }
Eso es todo, es bastante sencillo.

Bueno una pregunta... Vemos que tengo una imagen de cargando ¿hay alguna manera de ponerle tiempo a esa imagen?

Es que ahora mismo se muestra pero se muestra muy rapido, y para eso mejor no tener nada xD, ya que apenas da tiempo a verla.

Muchas gracias
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 00:17.