Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/06/2005, 01:14
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola jotamachuca:

Lo que pides se puede hacer con tecnología ajax, y trata de hacer peticiones desde un objeto XMLHttpRequest, y recibiendo luego los datos con formato XML.

Haciendo un boceto rápido:

<input type="text" name="entrada" value="" onkeyup="pedir(this.value) />

La función pedir sería más o menos así:

Código:
var pedido;// en primer lugar se define una variable global
function pedir(dato)	{
	entrada = "pedido.php?entrada=" + dato;
	if (window.XMLHttpRequest)	{
		pedido = new XMLHttpRequest();
		pedido.onreadystatechange = respuestaXML;
		pedido.open("GET", entrada, true);
		pedido.send(null);
	}
	else
		if (window.ActiveXObject)	{
			pedido = new ActiveXObject("Microsoft.XMLHTTP");
			if (pedido)	{
				pedido.onreadystatechange = respuestaXML;
				pedido.open("GET", entrada, true);
				pedido.send();
			}
		}
}
Y como puedes ver, estos objetos XMLHttpRequest tienen un método onreadystatechange que se activa al recibir los datos y debes poner la función que los procese, además de un método open (que hasta ahora solo he usado con el método get, y como segundo parámetro el destino de la petición...

Y el procesamiento podría ser:

Código:
function respuestaXML()	{
	if (pedido.readyState == 4)	{
		if (pedido.status == 200)	{
			datoTraido = pedido.responseXML.documentElement;
			paises = datoTraido.getElementsByTagName('paisObtenido');
			for (var i = 0; i < paises.length; i++)	{
				estePais = paises[i].firstChild.data;
				// aquí asignas estePais //
			}
		}
		else	{
			alert("error\n" + pedido.statusText);
		}
	}
}
Ahora la parte php (es como estoy haciendo practicas) tienes que ponerle una cabecera XML (tanto en el header php como en la respuesta) con una estructura más o menos así:

Código:
<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>';
?>
// y el resto del documento con un formato así:
<documento>
	<paisObtenido>
		Afganistán
	</paisObtenido>
	<paisObtenido>
		Albania
	</paisObtenido>
	<paisObtenido>
		Alemania
	</paisObtenido>
</documento>
Espero que te sirva

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo