Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/02/2011, 13:00
cosobo
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 66
Antigüedad: 8 años, 11 meses
Puntos: 2
Información Respuesta: Problema con el paginador PHP cuando doy F5

Cita:
Iniciado por Deathmetalrules Ver Mensaje
es decir guardar la pagina actual (a la que di clic) en una variable?????


explicame mejor lo del hash....por favor

si piensas guardar si
como lo envías por javascript la sesion sobra..XD
en javascript pondrias arriba de
Código Javascript:
Ver original
  1. ajax.open("GET", "docentes.php?pag="+nropagina);
colocas
Código Javascript:
Ver original
  1. document.cookie="pag="+nropagina;

------------------
y para lo del hash es asi

te creas una nueva pagina php vale. la llamas pp2.php
y dentro colocas:
Código PHP:
Ver original
  1. if (isset($_GET['p'])) {    
  2.     $p= $_GET['p'];
  3.      echo $p;
  4. }
con esto cuando entres a pp2.php?p=hola mundo la pagina te mostrara hola mundo.
bien eso esta claro............. supongo.....

ahora el js:
te creas un nuevo archivo js y lo llamas pp.js
y dentro colocas : (tal igual como te lo escribo)
Código Javascript:
Ver original
  1. // definimos estandares
  2.     var peticion_http = null;
  3.     var hashDefecto = null;
  4.     var errorDeTiempo = null;
  5.     var tiempoPagina = null;   
  6.     var esperaMax = 12000;
  7.     var espera = 800;
  8. // funciones ajax
  9.     // creamos objeto ajax
  10.         function inicializa_xhr() {
  11.           if(window.XMLHttpRequest) {
  12.             return new XMLHttpRequest();
  13.           } else if(window.ActiveXObject) {
  14.             return new ActiveXObject("Microsoft.XMLHTTP");
  15.           }
  16.         }
  17.     // función ajax que abrirá las paginas
  18.     function cargaContenido(url,variables,funcion,metodo,ab) {
  19.       peticion_http = inicializa_xhr();
  20.       metodo = metodo || 'GET';
  21.       ab = ab || '';
  22.       if(peticion_http) {        
  23.         if (ab=='rex') {cuentraAtras = setTimeout("comprobarHash()", esperaMax);}      
  24.         if(metodo == 'POST'){
  25.             peticion_http.open('POST', url, true);
  26.             peticion_http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  27.             peticion_http.send(variables);
  28.         } else {
  29.             url = url+'?'+variables;
  30.             peticion_http.open('GET', url, true);
  31.             peticion_http.send(null);
  32.         }
  33.         peticion_http.onreadystatechange = funcion;
  34.       }
  35.     }
  36.     // error de espera a la carga  
  37.     function declaraError(contenedor) {
  38.         /* si a supera el tiempo de esperaMax se prosede este metodo*/ 
  39.         if(errorDeTiempo) {clearTimeout(errorDeTiempo);}
  40.         if(tiempoPagina) {clearTimeout(tiempoPagina);}
  41.         document.getElementById('avisos').style.display='none';
  42.         document.getElementById('error').style.display='';
  43.        
  44.         document.getElementById(contenedor).style.display='none';
  45.     }
  46.    
  47. // controles de tiempo y carga
  48.     function comprobarHash() {     
  49.         tiempoPagina = setTimeout("comprobarHash()", espera);  
  50.         if(hashDefecto == window.location.hash) return;
  51.         cargaPagina(window.location.hash);
  52.      }
  53.      
  54.     function abortar() {
  55.       // La cuentra atrás se ha cumplido, detener la petición HTTP pendiente
  56.       peticion_http.abort();
  57.       alert("Se ha producido un error en la comunicación con el servidor. Inténtalo un poco más adelante.");
  58.     }
  59.    
  60. //////////////////////////////////////operacioens registro

con eso as creado una función que se llama cargaContenido()
que le pasa como parametros
Cita:
(LA PAGINA A ABRIR,LAS VARIABLES,LA FUNCION DE RESPUESTA,EL METODO get o post,ab<= si hay 'rex' activa el cuenta atrás para abortar la conexión si se tarda musho si no lo hay continua)
bien ahora la magia del hash, te crear una pagina pp.php (dentro la pa pagina creas)
Código HTML:
Ver original
  1. <ul>
  2.                     <li><a href="#p=citas">citas</a></li>
  3.                     <li><a href="#p=amigos">amigos</a></li>
  4.                     <li><a  href="#p=ofertasMias">ofertasMias</a></li>
  5.                   </ul>
  6. <div id="contendioPerfil">                                      
  7.                   </div>
y en la cabecera colocas
Código Javascript:
Ver original
  1. <script type="text/javascript" src="pp.js"></script>
  2. <script type="text/javascript">
  3. function iniciar() {/*inicia el proseso al cargarse la pagina*/cargaPagina(window.location.hash);}
  4. function cargaPagina(hash) {
  5.     errorDeTiempo = setTimeout("declaraError('contendioPerfil')", esperaMax);  
  6.     hashDefecto = hash;
  7.     hash = hash.replace(/^\#/, ""); // limpia el hash quita el # par colocar despues el ?
  8.     if(hash.length > 0) hash = hash;
  9.     cargaContenido("pp2.php",hash,muestrame,'GET','rex');// llama a la funcion ajax para enviar al php
  10. }
  11. function muestrame() {
  12.     var pagina=document.getElementById('contendioPerfil');
  13.     if (peticion_http.readyState == 4) {       
  14.         if(peticion_http.status==200) {clearTimeout(errorDeTiempo);
  15.             tiempoPagina = setTimeout("comprobarHash()", espera);
  16.             pagina.innerHTML = peticion_http.responseText;
  17.         } else if(peticion_http.status==404){pagina.innerHTML = '<div class="avis carga">La pagina no existe</div>';
  18.         } else {preloader.innerHTML = '<div class="avis carga">Error > fatal: por favor avisar al administrador</div>';}           
  19.     } else {
  20.         pagina.innerHTML = '<div class="avis carga">Cargando la pagina...</div>';
  21.     }
  22. }
  23. </script>

ojo
Cita:
los nombres son de prueba luego con calma examinas el código y lo acomodas a tus necesidades, si tienes algun problema avisas ya que lo e escrito ahora ... XD

Última edición por cosobo; 22/02/2011 a las 13:03 Razón: include