Foros del Web » Programando para Internet » Javascript »

Texto dinamico segun entrada de usuario

Estas en el tema de Texto dinamico segun entrada de usuario en el foro de Javascript en Foros del Web. Hola Hasta el momento no me habia visto en la necesidad de preguntar algo,, ya que todo lo que he necesitado se encuentra, salvo esto ...
  #1 (permalink)  
Antiguo 28/06/2005, 21:38
 
Fecha de Ingreso: octubre-2004
Mensajes: 143
Antigüedad: 19 años, 6 meses
Puntos: 0
Texto dinamico segun entrada de usuario

Hola

Hasta el momento no me habia visto en la necesidad de preguntar algo,, ya que todo lo que he necesitado se encuentra, salvo esto

Me gustaria construir un formulario, que cuando el usuario realice el ingreso de un texto, este busque en la base de datos por x parametros y los despliegue los que coinicidan , y cada vez que va ingresando mas texto, la coinicidencia es mayor... se entiende ?? mejor un ejemplo

Tengo que buscar por paises y tengo el listado de todos los paises
1.- el usuario teclea una a (independiente mayusculas y/o minusculas)
2.- la pagina web despliega todos los paises que empiezan con a SIN RECARGARSE.. o sea directamente. Desplegaria

Afganist�n
Albania
Alemani
Andorra
Angola
Anguilla
Ant�rtica
Antigua y Barbuda
Antillas holandesas
Australia
Austria


3.- el usuario teclea "ar" y aparecen solo estas

Arabia Saud�
Armenia
Aruba


4.- luego "arg"

Argelia
Argentina


5.- luego "argen" ...
Argentina

Se entiende ???

Algun tips, o si alguuien lo realizó, la idea es que la pagina no se recargue, se me ocurre trayendo todo desde la base y hacerlo con Javascript, pero seria un soberado desperdicio

Gracias
  #2 (permalink)  
Antiguo 29/06/2005, 01:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
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
  #3 (permalink)  
Antiguo 29/06/2005, 11:33
 
Fecha de Ingreso: octubre-2004
Mensajes: 143
Antigüedad: 19 años, 6 meses
Puntos: 0
Eso mismo pense yo :-)

Dicen que despues de la guerra todos son generales.....

El asunto es que pense en Ajax, pero nunca lo habia utilizado, en fin, me tire a la piscina y depsues de 3 horas de comprender bien la cosa, y hacer funcionar mi ejemplo, estoy personalizando mi motorcito

En todo caso , el ejemplo de los paises es para que me entendieran, el asunto era para usarlo con clientes, onda apellido paterno, materno, nombres, y que estos nombres se transformen en enlaces dentro de una ventana hija.. .

BUeno, lo que hice es usar javascript para generar la tabla en el cliente, una vez que se reciben los datos del server y una vez que tengo los datos se genera la tabla con estos...

El problema es que me gustaria saber cual es la mejor forma de enviar datos desde el server al cliente y capturarlos con el javascript.....

Pense en XML, pero la desventaja es que yo ya se que datos son y para que agregar tags inecesarios.. en esta aplicacion son innecesarios

Lo otro se me ocurre enviarlos asi


PATERNO1|MATERNO1|NOMBRES1
PATERNO2|MATERNO2|NOMBRES2
...
PATERNOn|MATERNOn|NOMBRESn

El asunto es como lo hago para obtener los datos en el cliente ???

Gracias de antemano
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 19:12.