Foros del Web » Programando para Internet » Javascript »

Habilitar OPTION's de SELECT en base a otro SELECT

Estas en el tema de Habilitar OPTION's de SELECT en base a otro SELECT en el foro de Javascript en Foros del Web. Buenas gente Estoy terminando lo que sería el formulario de checkout de la tienda cual estoy programando, pero se me complico la mano cuando necesite ...
  #1 (permalink)  
Antiguo 05/12/2007, 06:20
Avatar de fakuramone  
Fecha de Ingreso: noviembre-2007
Mensajes: 7
Antigüedad: 16 años, 5 meses
Puntos: 0
Habilitar OPTION's de SELECT en base a otro SELECT

Buenas gente

Estoy terminando lo que sería el formulario de checkout de la tienda cual estoy programando, pero se me complico la mano cuando necesite agregar javascripts ya que apenas hace 4 meses programo en php y de javascript se menos que poquito, (apenas tengo una teoría de como funciona).

Les cuento mi problema a ver si alguien me puede dar una mano.

En dicho formulario de checkout valga la redundancia llamado "checkout" tengo que crear una relación entre dos SELECT's. Uno de países y el otro de cargos de envío (shipping).
El tema es así: Los pedidos de la tienda se enviaran desde Estados Unidos osea que para el mismo país los tipos de envío van a ser "Estándar" y "Premium", y para el resto del mundo "Internacional".En simples palabras, lo que necesito hacer es que mientras no se seleccione pais en el FORM, el SELECT de cargos de envío quede DISABLED y SELECTED en "Internacional" y asi y todo me pase la variable a través del FORM, y en el caso de que se seleccione Estados Unidos, se habilite el SELECT con los OPTION de "Estándar" y "Premium" pero "Internacional" no.

Código HTML:
<form name="checkout" action="validar.php" method="post">
<p>País:</p>
<p>
	<select name="country" id="country" onChange="cambiaShip(this.value)">
		<option value="0" selected>Seleccione su pa&iacute;s</option>
        <option value="US">United States</option>
        <option value="UY">Uruguay</option>
	</select>
</p>
<p>Tipo de envío:</p>
<p>
	<select name="shipping_type" onChange="location.href='index.php?checkout&shp_type='+this.options[this.selectedIndex].value;" disabled="disabled">
        <option value="1">Estandard</option>
        <option value="2">Premium</option>
        <option value="3" selected="selected">Internacional</option>
	</select>
</p>
</form> 
Esto es lo único que pude lograr:

Código HTML:
<script language="JavaScript">
function cambiaShip(valor){
	if (valor=="US"){
	document.checkout.shipping_type.disabled=false;
	document.checkout.shipping_type.selectedIndex=0;
	}else{
	document.checkout.shipping_type.disabled=true;
	document.checkout.shipping_type.selectedIndex=3;
	}
}
</script> 
Pero al SUBMIT del FORM no me envía la variable ¿Esto es por estar DISABLED?

No se si me explique bien, cualquier cosa a las ordenes.
Espero ancioso una respuesta!!!!
AYUDAAAAAAAAAAAAAA!!!!

Última edición por fakuramone; 05/12/2007 a las 06:25 Razón: Horrores de ortografía
  #2 (permalink)  
Antiguo 05/12/2007, 07:24
 
Fecha de Ingreso: octubre-2006
Ubicación: Guadalajara, Mexico
Mensajes: 177
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Habilitar OPTION's de SELECT en base a otro SELECT

Que tal FAKURAMONE


mira te envio esta pagina es algo parecido a lo que tu buscas, viene ejemplo, teoria y muy entendible


mira aqui este el link

http://www.w3schools.com/js/tryit.as...ption_selected

o este

http://www.w3schools.com/js/tryit.as...option_settext
  #3 (permalink)  
Antiguo 05/12/2007, 12:14
Avatar de fakuramone  
Fecha de Ingreso: noviembre-2007
Mensajes: 7
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Habilitar OPTION's de SELECT en base a otro SELECT

Bueno muchas gracias por el dato jtv1972
esta muy bueno ese editor online
pero lo que necesito es mas o menos una idea de como hacerlo por que se muy poco de javascript y estoy con el tiempo contado para entregar el proyecto.
AYUDAAAAAAAAAAAAAAAAAAA!!!!!
  #4 (permalink)  
Antiguo 05/12/2007, 12:33
Avatar de gepd  
Fecha de Ingreso: diciembre-2007
Mensajes: 142
Antigüedad: 16 años, 4 meses
Puntos: 6
Re: Habilitar OPTION's de SELECT en base a otro SELECT

yo lo aría de ésta forma, dime si te funciona

Código PHP:
<script language="JavaScript">
function 
cambiaShip(valor){
    if (
valor=="US"){
    
document.checkout.shipping_type.disabled=false;
        
document.checkout.shipping_type.length=2;
        
document.form.nombrecombo.options[0]=new Option("Estandard","1");
        
document.form.nombrecombo.options[1]=new Option("Premium","2");
    }else{
    
document.checkout.shipping_type.disabled=true;
        
document.country.focus();
    }
}
</script> 
  #5 (permalink)  
Antiguo 12/12/2007, 05:55
Avatar de fakuramone  
Fecha de Ingreso: noviembre-2007
Mensajes: 7
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Habilitar OPTION's de SELECT en base a otro SELECT

Cita:
Iniciado por gepd Ver Mensaje
yo lo aría de ésta forma, dime si te funciona

Código PHP:
<script language="JavaScript">
function 
cambiaShip(valor){
    if (
valor=="US"){
    
document.checkout.shipping_type.disabled=false;
        
document.checkout.shipping_type.length=2;
        
document.form.nombrecombo.options[0]=new Option("Estandard","1");
        
document.form.nombrecombo.options[1]=new Option("Premium","2");
    }else{
    
document.checkout.shipping_type.disabled=true;
        
document.country.focus();
    }
}
</script> 
Bueno gepd
Muchas gracias por la ayuda!!
La verdad que funciona a la perfección!!
Pero ahora tengo una duda ¿como dejo los campos seleccionados al recargar la página?
Osea, el select de país y el de cargo de envío.
Y si el envío fuera "internacional" al estar DISABLED el select ¿puedo crear un input hidden para cargar la variable de envío?

Desde ya muchas gracias a todos por ayudarme!!!1
  #6 (permalink)  
Antiguo 29/03/2008, 14:05
Avatar de gepd  
Fecha de Ingreso: diciembre-2007
Mensajes: 142
Antigüedad: 16 años, 4 meses
Puntos: 6
Re: Habilitar OPTION's de SELECT en base a otro SELECT

mm se me ocurre con cookie o con session, has una prueba y dinos si puedes hacerlo.
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 05:06.