Ver Mensaje Individual
  #5 (permalink)  
Antiguo 21/07/2010, 03:27
Avatar de Eder
Eder
 
Fecha de Ingreso: enero-2007
Mensajes: 41
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: visualizar frases aleatorias desde un fichero XML (dudas y ayuda)

Muchas gracias David!! Estoy muy contento ya que me van saliendo las cosas casi!! ^^ Tengo un problema con el bucle que he hecho de setInteval() a 5segundos. No se me hace un bucle, sino que hace 3 ó 4 pasadas y se queda sin actualizar y creo que la memoria ram que okupa el procesador se dispara porque empeiza el ventilador del portatil a soplar que vaya...

Tengo este fichero XML con frases que ahora son números:

Código:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<frases>
	<frase>
		<texto>111111111</texto>
	</frase>
	<frase>
		<texto>2222222</texto>
	</frase>
	<frase>
		<texto>333333</texto>
	</frase>
	<frase>
		<texto>444444</texto>
	</frase>
	<frase>
		<texto>555555555555</texto>
	</frase>
	<frase>
		<texto>666666666666</texto>
	</frase>
</frases>
Este fichero PHP (le tengo que cambiar el nombre jejeje) que genera un numero aleatorio entre cero y el número de frases que hay en el XML y devuelve una de las frases:

Código:
<?php

$num=rand(0,5);

$xmlDoc = new DOMDocument();
$xmlDoc->load("frases.xml");

$x=$xmlDoc->getElementsByTagName('texto');

for ($i=0; $i<=$x->length-1; $i++){
	if ($i == $num){
    	$y=($x->item($i)->parentNode);
		$cd=($y->childNodes);
  		echo($cd->item(1)->childNodes->item(0)->nodeValue);
    }
}
?>
Luego en el head de la pagina tengo puesto (tengo q cambiar el nombre de la funcion por ShowFrase):

Código:
<script type="text/javascript">
function showCD(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","getcd.php?q="+str,true);
xmlhttp.send();
setInterval("showCD()", 5000);
}
</script>
Y la llamada en el body:

Código:
<div align="center" id="txtHint">
<script language="javascript"> showCD();</script>
</div>

La web donde lo estoy probando es: http://www.disfrutaloscorrs.es/ . En la parte de abajo hay una franja negra donde se visualizan los numeritos de las frases y solo cambian 3 ó 4 veces... Luego se para y la ram y procesador se disparan!

No se como seguir.....