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

problema con paginador, conservar variable de select

Estas en el tema de problema con paginador, conservar variable de select en el foro de Frameworks JS en Foros del Web. hice un paginador guiandome de aqui http://www.ribosomatic.com/articulos...ql-php-y-ajax/ nada mas que yo lo que quiero es que en un select seleccione el mes y me haga ...
  #1 (permalink)  
Antiguo 15/03/2011, 08:59
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 6 meses
Puntos: 5
problema con paginador, conservar variable de select

hice un paginador guiandome de aqui
http://www.ribosomatic.com/articulos...ql-php-y-ajax/

nada mas que yo lo que quiero es que en un select seleccione el mes y me haga la consulta de acuerdo a ese mes si lo hace pero despues se pierde el valor del select



<select name='mes' id = 'mes'>
<option value="0">Elegir mes</option>
<?php
$mes = array ('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre' );
$nom = array(1,2,3,4,5,6,7,8,9,10,11,12);
for( $i = 0; $i <= 11; $i ++) {

echo "<option value='{$nom[ $i]}'> {$mes[ $i ]} </option>";
}
echo "</select>";

?>
y en el otro php me lo traigo por post
Código PHP:
<?php

 
require('conexion.php');
 
$RegistrosAMostrar=4;
$mes $_POST['mes']; 

 
//estos valores los recibo por GET
 
if(isset($_GET['pag'])){
  
$RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
  
$PagAct=$_GET['pag'];
  
//caso contrario los iniciamos
 
}else{
  
$RegistrosAEmpezar=0;
  
$PagAct=1;
 }

 
$Resultado=mysql_query("SELECT * FROM empleado  
  where MONTH(fecha) =$mes
 LIMIT $RegistrosAEmpezar, $RegistrosAMostrar"
,$con);
 echo 
"<table border='1px'>";
 while(
$MostrarFila=mysql_fetch_array($Resultado)){
  echo 
"<tr>";
  echo 
"<td>".$MostrarFila['nombres']."</td>";
  echo 
"<td>".$MostrarFila['departamento']."</td>";
  echo 
"<td>".$MostrarFila['sueldo']."</td>";
  echo 
"</tr>";
 }
 echo 
"</table>";

 
//******--------determinar las páginas---------******//
 
$NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM empleado where MONTH(fecha) =$mes",$con));
 
$PagAnt=$PagAct-1;
 
$PagSig=$PagAct+1;
 
$PagUlt=$NroRegistros/$RegistrosAMostrar;

 
//verificamos residuo para ver si llevará decimales
 
$Res=$NroRegistros%$RegistrosAMostrar;
 
// si hay residuo usamos funcion floor para que me
 // devuelva la parte entera, SIN REDONDEAR, y le sumamos
 // una unidad para obtener la ultima pagina
 
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>";
?>
pero al momento de darle en siguiente se me pierde el valor del $mes que me traje por post y me marca error de sintaxis el mysql
  #2 (permalink)  
Antiguo 15/03/2011, 19:41
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 1 mes
Puntos: 16
Respuesta: problema con paginador, conservar variable de select

a ver, se me ocurren dos opciones:

una, es que generes un campo del tipo hidden que contenga el valor del mes, algo así:

Código PHP:
Ver original
  1. <input type="hidden" id="mes" name="mes" value="<?php echo $mes; ?>" />

luego en tu javascript rescates el valor del input de esta manera

Código Javascript:
Ver original
  1. var mes = document.getElementById('mes').value;

y luego se lo pases como parámetro al php que lee de la base de datos.

La otra es que dentro del mismo archivo donde se cargue dinámicamente pongas el select pero en vez de enviarlo pongas una función para el evento onChange, de modo que cada vez que cambie el mes genere la primera página y así tengas el valor del mes en todo momento, algo así:

Código PHP:
Ver original
  1. <select name="mes" id="mes" onChange="javascript: Pagina(1);">
  2. <option value="0">Elegir mes</option>
  3. <?php
  4. $mes = array ('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre' );
  5.  
  6. for($i=0;$i<=11;$i++) {
  7. ?>
  8.         <option value="<?php echo (mes[$i]+1); ?>"><?php echo $mes[$i]; ?></option>
  9. <?php
  10. }
  11. ?>
  12. </select>
  13. ...
  14. <----- Div donde cargarás el resultado ----->
  15. <div id="contenido"> </div>

y en el javascript algo así

Código Javascript:
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. mes = document.getElementById('mes').value;
  22.  
  23.  ajax=objetoAjax();
  24.  //uso del medoto GET
  25.  //indicamos el archivo que realizará el proceso de paginar
  26.  //junto con un valor que representa el nro de pagina
  27.  ajax.open("GET", "paginador.php?mes="+mes+"&pag="+nropagina);
  28.  divContenido.innerHTML= '<img src="anim.gif">';
  29.  ajax.onreadystatechange=function() {
  30.   if (ajax.readyState==4) {
  31.    //mostrar resultados en esta capa
  32.    divContenido.innerHTML = ajax.responseText
  33.   }
  34.  }
  35.  //como hacemos uso del metodo GET
  36.  //colocamos null ya que enviamos
  37.  //el valor por la url ?pag=nropagina
  38.  ajax.send(null)
  39. }

luego en el php sólo cambiar el método con el que rescatas mes, es decir, en vez de

$mes = $_POST['mes'];

usar

$mes = $_GET['mes'];


Espero te sea de ayuda

Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #3 (permalink)  
Antiguo 15/03/2011, 22:42
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 9 meses
Puntos: 15
Respuesta: problema con paginador, conservar variable de select

Para mi seria mejor almacenar la consulta en sesion o memoria(Y serializar por supuesto), y limpiarla depues de algun evento para poder conusultar nuevamente...
Hay algunas librerias que te permiten cachear estas consultas sin dolor de cabeza ni nada....O puedes probar algunos ORM como Propel o Doctrine, o más basicos como adodb5.
  #4 (permalink)  
Antiguo 16/03/2011, 08:03
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: problema con paginador, conservar variable de select

Cita:
Iniciado por SPAWN3000 Ver Mensaje
Para mi seria mejor almacenar la consulta en sesion o memoria(Y serializar por supuesto), y limpiarla depues de algun evento para poder conusultar nuevamente...
como es esto? disculpa no entiendo a que te refieres con eso de serializar
intente almacenando la variable en una sesión pero tampoco funciona


y Metallik estuve probando pero no se no agarra por GET el valor del select si lo pongo por POST si agarra el valor pero ahora me marca error en la pagina

Última edición por Markgus; 16/03/2011 a las 08:52
  #5 (permalink)  
Antiguo 21/03/2011, 12:18
 
Fecha de Ingreso: marzo-2011
Ubicación: Cuba
Mensajes: 8
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: problema con paginador, conservar variable de select

necesito paginar la información que obtengo al hacer la consulta a mi base de datos y que esta lo muestre sobre un div. el problema es que me muestra solamente el principio de la consulta. Lo que pone es The requested URL /Sitio/Funciones/paginador.php was not found on this server.
que hago
  #6 (permalink)  
Antiguo 22/03/2011, 07:22
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: problema con paginador, conservar variable de select

Cita:
Iniciado por arodriguezg Ver Mensaje
necesito paginar la información que obtengo al hacer la consulta a mi base de datos y que esta lo muestre sobre un div. el problema es que me muestra solamente el principio de la consulta. Lo que pone es The requested URL /Sitio/Funciones/paginador.php was not found on this server.
que hago
hola arodriguezg yo encontre este ejemplo http://webscripts.softpedia.com/scri...ion-50936.html
lo ando adaptando a mi codigo en este ejemplo no se pierde la pagina cuando le das en siguiente, aunque si me marca error cuando pongo mas setencias en el where por ejemplo un and pero ya analizaremos, ojala y te sirva de algo
yo lo que ando haciendo es algo parecido a lo que dices tu hacer la consulta y que la muestre en un div, en este ejemplo muestra todos los resultados tambien tiene para hacer busqueda pero como te digo muestra los resultados antes

y pues aun no lo pruebo si funcionara con mi select pero pues es lo mas cercano que he encontrado para lo que quiero hacer

ojala y te sirva y alguien mas nos pueda asesorar y dar mejores ideas, saludos

Etiquetas: ajax, paginador
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 02:54.