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