Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Actualizar datos de un div sin refrescar web

Estas en el tema de Actualizar datos de un div sin refrescar web en el foro de PHP en Foros del Web. Hola, He conseguido actualizar constantemente un archivo php mediante ajax sin necesidad de refrescar toda la página con el siguiente código: Código .js: Código PHP: ...
  #1 (permalink)  
Antiguo 19/02/2016, 08:59
 
Fecha de Ingreso: febrero-2009
Mensajes: 44
Antigüedad: 15 años, 2 meses
Puntos: 1
Actualizar datos de un div sin refrescar web

Hola,

He conseguido actualizar constantemente un archivo php mediante ajax sin necesidad de refrescar toda la página con el siguiente código:

Código .js:
Código PHP:
/*
* Parametros mandatorios
*/
    
var seconds 1// el tiempo en que se refresca
    
var divid "refrescar_entrenos"// el div que quieres actualizar!
    
var url "web/salas/sala_entrenos.php"// el archivo que ira en el div

    
function refreshdiv(){

        
// The XMLHttpRequest object

        
var xmlHttp;
        try{
            
xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
        
}
        catch (
e){
            try{
                
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
            
}
            catch (
e){
                try{
                    
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (
e){
                    
alert("Tu explorador no soporta AJAX.");
                    return 
false;
                }
            }
        }

        
// Timestamp for preventing IE caching the GET request
        
var timestamp parseInt(new Date().getTime().toString().substring(010));
        var 
nocacheurl url+"?t="+timestamp;

        
// The code...

        
xmlHttp.onreadystatechange=function(){
            if(
xmlHttp.readyState== && xmlHttp.readyState != null){
                
document.getElementById(divid).innerHTML=xmlHttp.responseText;
                
setTimeout('refreshdiv()',seconds*1000);
            }
        }
        
xmlHttp.open("GET",nocacheurl,true);
        
xmlHttp.send(null);
    }

    
// Empieza la función de refrescar

    
window.onload = function(){
        
refreshdiv(); // corremos inmediatamente la funcion
    

En el head de mi html:
Código HTML:
<script type="text/javascript" src="web/js/refrescar_entrenos.js"></script> 
Y finalmente, en el body, pongo esto:
Código HTML:
<div id="refrescar_entrenos">
       	<div name="timediv" id="timediv">
		<?php include('web/salas/sala_entrenos.php'); ?> 
       	</div>
</div> 
Con esto consigo que me actualice el archivo sala_entrenos.php constantemente (es lo que quiero) pero me surge un problema. ¿cómo puedo hacer para que, en lugar de que me refresque un sólo archivo: sala_entrenos.php, me refresque 3 archivos:
sala_entrenos.php
sala_libres.php
sala_oficial.php

Gracias.
  #2 (permalink)  
Antiguo 19/02/2016, 09:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Actualizar datos de un div sin refrescar web

Pues deberías tener una función genérica en Javascript que acepte dos parámetros: el div y el script php.

Ya con eso puede reusarla tantas veces desees con la cantidad de divs y scripts que quieras.

Por cierto, en todo caso debiste publicar en el foro de Javascript y no aquí.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/02/2016, 12:21
 
Fecha de Ingreso: febrero-2009
Mensajes: 44
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Actualizar datos de un div sin refrescar web

Gracias! Solicionado.

Por cierto, disculpa, esa era mi intención pero estuve entrando y saliendo de distintos foros y al final posteé aquí pensando que estaba en el de Javascript. No fue mi intención. Si algún moderador puede moverlo, se agradece.

Un saludo.

Etiquetas: html, refrescar
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 21:22.