Foros del Web » Programando para Internet » Javascript »

Filtro sobre un select dínámico desde un textbox

Estas en el tema de Filtro sobre un select dínámico desde un textbox en el foro de Javascript en Foros del Web. Que tal, saludos a todos. Checando los scrips en el foro me tope con este Filtro sobre un select su función es filtrar los datos ...
  #1 (permalink)  
Antiguo 20/07/2005, 14:42
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 19 años, 6 meses
Puntos: 4
Filtro sobre un select dínámico desde un textbox

Que tal, saludos a todos. Checando los scrips en el foro me tope con este

Filtro sobre un select

su función es filtrar los datos de un select dependiendo de lo que se escriba en un cuadro de texto.

el detalle esta, en filtrar los datos de un select pero dinámico, es decir que los datos sean extraidos de una bd y no generados de forma predeterminada, como lo hace el script. agradeceria cualquier ayuda y aportación.
  #2 (permalink)  
Antiguo 20/07/2005, 16:00
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 2 meses
Puntos: 45
Osea deberias tener este codigo:

Código PHP:
<html
<
head
  <
script language="JavaScript"

   var 
i

   function 
addOpt(oCntrlsTxtsValsCnd){ 
    if (
sTxt.substr(0sCnd.length).toUpperCase() == sCnd.toUpperCase()){ 
     var 
selOpcion=new Option(sTxtsVal); 
     eval(
oCntrl.options[i++]=selOpcion); 
    } 
   } 

   function 
cambia(oCntrl){ 
    var 
txtVal document.frm.txt.value
    while(
oCntrl.length 0oCntrl.options[0]=null
    
0
    
oCntrl.clear
    
addOpt(oCntrl,  "Ciudad de México""0"txtVal); 
    
addOpt(oCntrl,  "Ciudad de Panamá""0"txtVal); 
    
addOpt(oCntrl,  "Ciudad de Guatemala""0"txtVal); 
    
addOpt(oCntrl,  "Caracas""0"txtVal); 
    
addOpt(oCntrl,  "Cancún""0"txtVal); 
    
addOpt(oCntrl,  "Maracay""0"txtVal); 
    
addOpt(oCntrl,  "Maracaibo""0"txtVal); 
    
addOpt(oCntrl,  "Zaragoza""0"txtVal); 
   } 
  
</script> 
</head> 
<body onload="cambia(document.frm.ciudad)"> 
  <form name="frm"> 
   <table border="0"> 
    <tr> 
     <td> 
      Ciudad: 
     </td> 
     <td> 
      <input type="text" name="txt" onkeyup="cambia(document.frm.ciudad)"> 
     </td> 
     <td> 
      <select name="ciudad"> 
      </select> 
     </td> 
    </tr> 
   </table> 
  </form> 
</body> 
</html> 
y en la parte de
Código PHP:
    addOpt(oCntrl,  "Ciudad de México""0"txtVal); 
    
addOpt(oCntrl,  "Ciudad de Panamá""0"txtVal); 
    
addOpt(oCntrl,  "Ciudad de Guatemala""0"txtVal); 
    
addOpt(oCntrl,  "Caracas""0"txtVal); 
    
addOpt(oCntrl,  "Cancún""0"txtVal); 
    
addOpt(oCntrl,  "Maracay""0"txtVal); 
    
addOpt(oCntrl,  "Maracaibo""0"txtVal); 
    
addOpt(oCntrl,  "Zaragoza""0"txtVal); 
utilizar tus propios valores extraidos de una base de datos, todos los valores posibles.



Alguna dificultad, la comentas.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 20/07/2005, 16:18
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 19 años, 6 meses
Puntos: 4
Pregunta

ok derkenuke.

lo intente, la idea que tenia es colocar los text del select en esa parte que dices que se debe colocar usando un for para escribir todos los datos que tengo en el select y no me funciona.

alguna idea o sugerencia. gracias.
  #4 (permalink)  
Antiguo 20/07/2005, 18:27
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 2 meses
Puntos: 45
No es algo muy complicado, pero tienes que tener mucho cuidado con las comillas. No se si utilizas php, asp u otro lenguaje para tus BDD.

Código PHP:
<script>
.
.
.
   function cambia(oCntrl){ 
    var txtVal = document.frm.txt.value; 
    while(oCntrl.length > 0) oCntrl.options[0]=null; 
    i = 0; 
    oCntrl.clear;
    <?
    $res
=mysql_query("select * from ciudades"$link);
    while( 
$row=mysql_fetch_array($res) ) {
        echo 
'addOpt(oCntrl,  "'.$row['laCiudad'].'", "0", txtVal);';
    }
    
?>
   } 
</script>
Creo que no me he colado en ninguna comilla. Es imprimir por pantalla el campo que tu quieres, pero esa impresion se queda dentro del codigo javascript, no en el HTML.

A ver si te sale.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 21/07/2005, 14:25
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 19 años, 6 meses
Puntos: 4
De acuerdo

ok derkenuke;

lo voy a probar y gracias por la ayuda.

si funciona lo posteare aqui, sino también.
  #6 (permalink)  
Antiguo 23/07/2005, 11:58
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 19 años, 6 meses
Puntos: 4
ok, derkenuke.

funcionó a la perfección, aunque no sabia que dentro del codigo de javascript se podia escribir codigo php, pero si hace lo que quiero que haga.

aunque surgieron algunos detalles no previstos en el transcurso del proyecto que estoy realizando, pero de ahi en fuera funciona bien el script.
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 02:07.