Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/03/2011, 19:41
Avatar de El_Metallick
El_Metallick
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 5 meses
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!!