Foros del Web » Programando para Internet » Javascript »

tres combos combinados

Estas en el tema de tres combos combinados en el foro de Javascript en Foros del Web. Hola Aca estoy de nuevo pidiendo un poco de ayuda. Yo estoy armando una página en php y me ha surgido la necesidad de incorporar ...
  #1 (permalink)  
Antiguo 08/03/2010, 20:36
 
Fecha de Ingreso: julio-2009
Mensajes: 311
Antigüedad: 14 años, 9 meses
Puntos: 0
tres combos combinados

Hola Aca estoy de nuevo pidiendo un poco de ayuda.
Yo estoy armando una página en php y me ha surgido la necesidad de incorporar algunos script javascript y con muy poco conocimientos los estoy poniendo en funcionamiento.
En este caso he logrado modificar y adaptar un script que encontre en la red y casi anda bien.
La finalidad es que de acuerdo al tipo de operacion inmobliliaria el usuario pueda elgir los valores minimo y maximo para la busqueda.
He logrado que funcione bien para VENDER y para ALQUILAR pero no me doy cuenta porque la tercera opcion que es Permuta no carga los valores.
He revisado varias veces y no entiendo que esta mal.
Si me das una manito te lo voy a agradecer



Código PHP:
<form name="f1">
  <
p>Ejemplo de tres combos combinados </p>
  <
p>
    <
select name=toperacion onchange="cargaValores()">
      <
option value="0" selected>Seleccione opción
      
<option value="1">Venta
      
<option value="2">Alquiler
      
<option value="3">Permuta
    
</select>
    
desde
    
    
<select name=vinferior>
      <
option value="-">-
    </
select>
    
hasta
    
    
<select name=vmaximo>
      <
option value="-">-
    </
select>
    
    </
p>
</
form>

<
script>

//defino una serie de varibles Array para cada tipo de operación
var valores_1=new Array("-","10000","20000","30000","35000","40000","50000","...")
var 
valores_2=new Array("-","2000","2500","3000","4000","5000","...")
var 
valores_3=new Array("-","10000","20000","30000","35000","40000","50000","...")

var 
valoresMax_1=new Array("-","20000","30000","40000","50000","60000","70000","...")
var 
valoresMax_2=new Array("-","2500","3000","4000","5000","6000","...")
var 
valoresMAx_3=new Array("-","20000","30000","40000","50000","60000","70000","...")

//función que cambia los valores  del select en función del tipo de operacion que se haya escogido en el select de toperacion
function cargaValores(){
    
//tomo el valor del select del toperacion elegido
    
var toperacion
    toperacion 
document.f1.toperacion[document.f1.toperacion.selectedIndex].value
    
//miro a ver si el toperacion está definido


    
if (toperacion != 0) {

        
//si estaba definido, entonces coloco las opciones de los valores correspondiente.
        //selecciono el array de valores adecuado
        
mis_valores=eval("valores_" toperacion)
        
mis_valores2=eval("valoresMax_" toperacion)
        
        
//calculo el numero de valores
        
num_valores mis_valores.length
        num_valores2 
mis_valores2.length
        
        
//marco el número de valores en el select
           
document.f1.vinferior.length num_valores
           document
.f1.vmaximo.length num_valores2
           
         
//para cada valor del array, la introduzco en el select
           
for(i=0;i<num_valores;i++){
           
document.f1.vinferior.options[i].value=mis_valores[i]
           
document.f1.vinferior.options[i].text=mis_valores[i]
                          }
            for(
i=0;i<num_valores2;i++){
            
document.f1.vmaximo.options[i].value=mis_valores2[i]
            
document.f1.vmaximo.options[i].text=mis_valores2[i]

                }
           }else{
        
//si no había valor  seleccionado, elimino los valores del select
        
document.f1.vinferior.length 1
        
//coloco un guión en la única opción que he dejado
        
document.f1.vinferior.options[0].value "-"
        
document.f1.vinferior.options[0].text "-"

    
}
    
//marco como seleccionada la opción primera de valores
    
document.f1.vinferior.options[0].selected true
    
     

  #2 (permalink)  
Antiguo 08/03/2010, 21:08
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: tres combos combinados

fijate que tienes valoresMAx en lugar de valoresMax en donde declaras el array para la opción tres. Tienes una A cuando deberías tener una a. Otra cosa, cambia ese eval, como recomendación general se debe evitar el uso de eval lo más posible. En tu caso puedes probar con window['valores_' + toperacion] y window['valoresMax_' + toperacion];

Una cosa más, procura que tu javascript esté en su propio documento aparte y asignar las llamadas a eventos de forma externa.

Saludos
__________________
twitter: @imbuzu

Etiquetas: combinados, combos, tres
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 20:00.