Foros del Web » Programando para Internet » Javascript »

Rotador de noticias con BD y JS no me muestra datos

Estas en el tema de Rotador de noticias con BD y JS no me muestra datos en el foro de Javascript en Foros del Web. Buenas tardes comunidad, mes dirijo a ustedes ya qeu estoy bastante perdido. Con el ejemplo de mi clase (que no se conecta a una base ...
  #1 (permalink)  
Antiguo 25/01/2014, 14:02
 
Fecha de Ingreso: enero-2014
Mensajes: 2
Antigüedad: 10 años, 3 meses
Puntos: 0
Rotador de noticias con BD y JS no me muestra datos

Buenas tardes comunidad, mes dirijo a ustedes ya qeu estoy bastante perdido. Con el ejemplo de mi clase (que no se conecta a una base de datos) y con lo que he leido en este foro en otros temas, he llegado al siguiente código:

Código:
<script language="javascript" type="text/javascript">
noticiero=new Array();

<?
	while($row=mysql_fetch_array($consulta))
	{ 
?>
		noticia("<?=$row['pathFotoNoticia'];?>","<?=$row['titulo'];?>","<?=$row['pathNoticia'];?>","<?=$row['link'];?>");
<?
	}
?>


espera=2 //Segundos de espera

function noticia(imagen,titulo,texto,enlace)
{
	this.imagen=imagen;
	this.texto=texto;
	this.titulo=titulo;
	this.enlace=enlace;
}
function mostrar_campo(id_campo)
	{
	return document.getElementById(id_campo);

}
function mostrar(a)
{
	mostrar_campo("imagen_noticia").src=noticiero[a].imagen;
	mostrar_campo("titulo_noticia").innerHTML=noticiero[a].titulo;
	mostrar_campo("texto_noticia").innerHTML=noticiero[a].texto;
	mostrar_campo("enlace").href=noticiero[a].enlace;
}

b=0;
function cambiar()
{
   if (b<noticiero.length) 
   {
	  b++;
   }
   else 
   {
	  b=0;
   }

	mostrar(b);
}

// Cada "espera*1000" milisegundos
// cambia a la siguiente noticia
setInterval("cambiar()",espera*1000);

</script>
No me dá ningún error al ejecutar, pero no me muestra nada :(
Espero que me puedan ayudar, muchas gracias desde ya!!
  #2 (permalink)  
Antiguo 25/01/2014, 16:35
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Rotador de noticias con BD y JS no me muestra datos

Tenes 2 errores a simple vista, el más sencillo que veo es que no estas haciendo el echo en las variables php:

Esto:

Código PHP:
Ver original
  1. <?=$row['pathFotoNoticia'];?>

Deberia ser esto:

Código PHP:
Ver original
  1. <?php echo $row['pathFotoNoticia']; ?>

Pero el problema mas importante por lo que esto no te funciona es porque el codigo php se ejecuta una vez y no se volverá a ejecutar hasta que recargues la página, para hacer lo que estas buscando necesitas usar AJAX.

Entonces creas un archivo PHP que por ejemplo imprima las ultimas 10 noticias de tu base de datos, y luego con AJAX y el setInterval() etc cada N segundos consultas ese archivo para leer las ultimas noticias entonces vas a tener por un lado tu funcion javascript que hace dicha llamada y por el otro tu script php.

Te sugiero que si no estas familiarizado con ajax uses $.ajax() de jquery y leas su documentacion es bastante simple de entender e implementar.

Espero haberte ayudado Saludos!
  #3 (permalink)  
Antiguo 25/01/2014, 22:15
 
Fecha de Ingreso: enero-2014
Mensajes: 2
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Rotador de noticias con BD y JS no me muestra datos

Hola, este código anda sin ser por lo de la base de datos, si le saco eso funciona y cambia por la función de abajo del código que cada 1000 milisegundos pasa a la otra noticia, y por lo que he leído sí se puede solo que a mi no me muestra :)
  #4 (permalink)  
Antiguo 26/01/2014, 17:02
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Rotador de noticias con BD y JS no me muestra datos

Como mucho ( y dudo que sea posible ) podrias imprimir todas las noticias en el array javascript y luego recorrerlo aunque te convendria crear un array de objetos, algo asi:

Código Javascript:
Ver original
  1. noticiero=[

Código PHP:
Ver original
  1. <?php
  2.  
  3. $array_output = "";
  4.  
  5.     while($row=mysql_fetch_array($consulta))
  6.     {
  7.  
  8. $array_output .= "{";
  9. $array_output .= " \"pathFoto\": \"" . $row['pathFotoNoticia'] . "\",";
  10. $array_output .= " \"titulo\": \"" . $row['titulo'] . "\",";
  11. $array_output .= " \"pathNoticia\": \"" . $row['pathNoticia'] . "\",";
  12. $array_output .= " \"link\": \"" . $row['link'] . "\"";
  13. $array_output .= "},"
  14.  
  15.  
  16.     }
  17.  
  18. $array_output = substring($array_output,0,strlen($array_output)-1);
  19.  
  20.  
  21. ?>

Código Javascript:
Ver original
  1. ];

Podes probar con algo asi...

Etiquetas: bd, html, js, muestra, rotador
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 20:25.