Foros del Web » Programando para Internet » Javascript »

Búsqueda en un select.

Estas en el tema de Búsqueda en un select. en el foro de Javascript en Foros del Web. Hola... Tengo un select con datos traidos desde una base de datos mysql y vistos con php... la idea es que si al digitar sobre ...
  #1 (permalink)  
Antiguo 19/07/2005, 07:16
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 22 años, 1 mes
Puntos: 1
Búsqueda en un select.

Hola...

Tengo un select con datos traidos desde una base de datos mysql y vistos con php...

la idea es que si al digitar sobre el select se realice una búsqueda... por lo general uno oprime una letra y el select se ubica sobre uno de los registros que contiene esa letra... la idea entonces o lo que necesito es que al digitar toda una palabra se pueda consultar... si me hice entender

un saludo.. :D
  #2 (permalink)  
Antiguo 19/07/2005, 10:02
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 22 años, 1 mes
Puntos: 1
listo!! encontré lo que necesitaba...

http://www.desarrolloweb.com/articulos/1015.php?manual=22

pero bueno.. con este script.. todo perfecto.. pero si entonces yo digite mal los caracteres y me trajo un dato... mmm con este script debo volver a dar click sobre el select.. alguna otra idea para mejorarlo ??



Código:
<script language="JavaScript1.2">
var digitos=10 //cantidad de digitos buscados
var puntero=0					
var buffer=new Array(digitos)  //declaración del array Buffer
var cadena=""			

function buscar_op(obj,objfoco){
var letra = String.fromCharCode(event.keyCode)
if(puntero >= digitos){
		cadena="";
		puntero=0;
	}
//si se presiona la tecla ENTER, borro el array de teclas presionadas y salto a otro objeto...
if (event.keyCode == 13){
		borrar_buffer();
		if(objfoco!=0) objfoco.focus(); //evita foco a otro objeto si objfoco=0
	}
//sino busco la cadena tipeada dentro del combo...
else{
	buffer[puntero]=letra;					//guardo en la posicion puntero la letra tipeada
	cadena=cadena+buffer[puntero];			//armo una cadena con los datos que van ingresando al array
	puntero++;								
 //barro todas las opciones que contiene el combo y las comparo la cadena...
	for (var opcombo=0;opcombo < obj.length;opcombo++){   
		if(obj[opcombo].text.substr(0,puntero).toLowerCase()==cadena.toLowerCase()){
			obj.selectedIndex=opcombo;
					}
		}
	}
event.returnValue = false; //invalida la acción de pulsado de tecla para evitar busqueda del primer caracter
}


function borrar_buffer(){
//inicializa la cadena buscada
	cadena="";
	puntero=0;
}
</script>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="544" border="0" cellpadding="0" cellspacing="0">
  <tr> 
    <td width="89" height="29"></td>
    <td width="114"></td>
    <td width="26"></td>
    <td width="315"></td>
  </tr>
  <tr> 
    <td height="19"></td>
    <td valign="top"> 
      <select name="combo1" onKeypress=buscar_op(this,text2) onblur=borrar_buffer() onclick=borrar_buffer()>
        <option>Argentina</option>
        <option>Australia</option>
        <option>Bolivia</option>
        <option>Brasil</option>
        <option>Canada</option>
        <option>Colombia</option>
        <option>Dinamarca</option>
        <option>Estados Unidos</option>
        <option>Estonia</option>
        <option>Austria</option>
        <option>Bulgaria</option>
        <option>Chile</option>
        <option>Espa&ntilde;a</option>
        <option>China</option>
        <option>Costa Rica</option>
        <option>Croacia</option>
        <option>Ecuador</option>
      </select>
    </td>
    <td></td>
    <td></td>
  </tr>
  <tr> 
    <td height="18"></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td height="28"></td>
    <td colspan="2" valign="top"> 
      <input type="text" name="text2">
    </td>
    <td></td>
  </tr>
  <tr>
    <td height="58"></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>
</body>
</html>
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:35.