Foros del Web » Programando para Internet » PHP »

Refrescar un sector

Estas en el tema de Refrescar un sector en el foro de PHP en Foros del Web. Hola, tengo el siguiente problema: Tengo una web de una emisora de radio donde necesito mostrar según la hora el nombre del programa que se ...
  #1 (permalink)  
Antiguo 19/11/2010, 06:41
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 17 años, 10 meses
Puntos: 1
Refrescar un sector

Hola, tengo el siguiente problema:

Tengo una web de una emisora de radio donde necesito mostrar según la hora el nombre del programa que se está emitiendo.

Lo que necesito es que se actualice solo ese archivo sin necesidad de refrescar toda la página.
El archivo utilizado para mostrar los nombres del programa es:

Código PHP:
<?php include "conecciones/conexionprogramacion.php"?>

<script language="javascript">
var a = 0;
var rtime = 5; //este es el tiempo en segundos en que la pagina se va a actualizar
function time(){
a++;
    if(a == rtime){
    document.location.href = 'programacion.php'; //entre las comillas va el nombre de este documento o la pagina a la que se quiera actualizar
    }else{
    setTimeout('time();',1000);
    }
}
</script>
</head>
<body onLoad="setTimeout('time();',1000);">
<div id="echos">
</div> 

<?php
    date_default_timezone_set
("America/Argentina/Buenos_Aires");

    
$dia date('N');
    
$dia = (int)$dia;
    
$hora date('Hi');
    
$hora = (int)$hora;
    switch(
$dia)
    {
        case 
1:
            
$nomdia "lun";
        break;
        case 
2:
            
$nomdia "mar";
        break;
        case 
3:
            
$nomdia "mie";
        break;
        case 
4:
            
$nomdia "jue";
        break;
        case 
5:
            
$nomdia "vie";
        break;
        case 
6:
            
$nomdia "sab";
        break;
        case 
7:
            
$nomdia "dom";
        break;
    }
    
$consprogam mysql_query("select * from grilla where horaini <= $hora and $hora < horafin and emisora = 'AM' and dias like '%$nomdia%'"$coneccionprog) or die ("no se trajo programa");
    
$programa mysql_fetch_array($consprogam);
    
    
$nomprog $programa['nom_prog'];
    
    echo 
"$nomprog";
    
?>
En el home del sitio hice un INCLUDE para poner este archivo pero refresca la página entera.

Cómo se puede lograr?

Gracias!
  #2 (permalink)  
Antiguo 19/11/2010, 06:47
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Refrescar un sector

2 opciones:

enviar un AJAX
refrescar un iframe oculto:
Código Javascript:
Ver original
  1. function time(){
  2. a++;
  3.     if(a == rtime){
  4.     //document.location.href = 'programacion.php'; //entre las comillas va el nombre de este documento o la pagina a la que se quiera actualizar
  5.     window.open('programacion.php','iframe_name');
  6.     }else{
  7.     setTimeout('time();',1000); //no se requiere con setInterval
  8.     }
  9. }

PD: utiliza setInterval en JS y te olvidas de volver a definirlo
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 19/11/2010, 07:51
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Refrescar un sector

Cita:
Iniciado por maycolalvarez Ver Mensaje
2 opciones:

enviar un AJAX
refrescar un iframe oculto:
Código Javascript:
Ver original
  1. function time(){
  2. a++;
  3.     if(a == rtime){
  4.     //document.location.href = 'programacion.php'; //entre las comillas va el nombre de este documento o la pagina a la que se quiera actualizar
  5.     window.open('programacion.php','iframe_name');
  6.     }else{
  7.     setTimeout('time();',1000); //no se requiere con setInterval
  8.     }
  9. }

PD: utiliza setInterval en JS y te olvidas de volver a definirlo

Gracias por tu pronta respuesta!
Paso a comentarte los resultados. Logramos que se ven en nuestro home el Iframe con la hora y el nombre del programa que se está emitiendo pero no lo refresca.
Por si influye en algo te comento que el sitio está basado en una plantilla y probamos agregando en el template lo siguiente:

Código PHP:
<script language="javascript">
var 
0;
var 
rtime 5//este es el tiempo en segundos en que la pagina se va a actualizar
function time(){
a++;
    if(
== rtime){
    
//document.location.href = '../programacion.php'; //entre las comillas va el nombre de este documento o la pagina a la que se quiera actualizar
    
window.open('../programacion.php','prog');
    }else{
    
setTimeout('time();',1000);
    }
}

setTimeout('time();',1000);
</script> 
y también:

Código PHP:
<body onLoad="setTimeout('time();',1000);"
De esta manera muestra la información pero no la actualiza cada 5 segundos.


Que estaría mal?
  #4 (permalink)  
Antiguo 19/11/2010, 15:45
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Refrescar un sector

adentro de

if(a == rtime)

tienes que reiniciar "a", sino sólo 1 vez sería igual a rtime

Código Javascript:
Ver original
  1. if(a == rtime)
  2. {
  3.     a = 0;
  4.     window.open( .....
  5. }
  6. else
  7. {
  8. .......
  9. }




__________________

Si no me aumentas karma, no me motivas a ayudarte

Etiquetas: refrescar, sector
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 04:56.