Foros del Web » Programando para Internet » Javascript »

[Solucionado] Pasar Parametros de dos select a una funcion

Estas en el tema de [Solucionado] Pasar Parametros de dos select a una funcion en el foro de Javascript en Foros del Web. Estimados, Tengo otro problema hoy.... tengo un par de listas dependientes que están de la siguiente forma Código: <tr> <td> <select name="CmbMarca" size="1" id="familia" onChange ...
  #1 (permalink)  
Antiguo 06/07/2005, 11:25
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 21 años, 1 mes
Puntos: 9
[Solucionado] Pasar Parametros de dos select a una funcion

Estimados,

Tengo otro problema hoy....

tengo un par de listas dependientes que están de la siguiente forma


Código:
<tr>
<td>
<select name="CmbMarca" size="1" id="familia" onChange = "javascript:sublist(this.form, familia.value);" onBlur="javascrit:marca();">
	 <option value=0 selected>Seleccione Marca</option>
<option value=1>Sony</option>
<option value=2>Creative</option>
</select>
</td>
<td>
<select name="CmbLinea">
<option value=0 selected>Seleccione &nbsp;L&iacute;nea</option>
<option value=1>Audifonos</option>
<option value=2>CDs</option>
</td>
<td>
<select id="subcatagory" name="CmbProducto" size="1">
	 <option selected value="0">Seleccione Producto</option>
	</select>
</td>

</tr>

el combo "CmbProducto" se deberia formar a partir de los datos de los combos
"cmbLinea" y "CmbMarca"

y se hace con el siguiente código


Código:
function sublist(inform, selecteditem)
 {
	inform.CmbProducto.length = 0

	<%
	 count= 0
	 y=0
	 do while not rs.eof
	%>

	x = <%= trim(y) %>;

	subcat = new Array();
	subcatagorys = '<%=(rs("PRODUCTO.nombre"))%>'; 
	subcatagoryof = '<%=(rs("id_marca"))%>'; 	
	subcatagoryid = '<%=(rs("id_producto"))%>'; 
	
	subcat[x,0] = subcatagorys;
	subcat[x,1] = subcatagoryof;
	subcat[x,2] = subcatagoryid;
	
	if (subcat[x,1] == selecteditem)  {
	  var option<%= trim(count) %> = new Option(subcat[x,0], subcat[x,2]);
	  inform.CmbProducto.options[inform.CmbProducto.length]=option<%= trim(count)%>;
	 }
	<%
	  count = count + 1
	  y = y + 1
	  rs.movenext
	 loop
	rs.close
	%>
}
el problema que tengo es que el combo se forma cuando ingreso los datos o mas bien selecciono los datos del primer select pero cuando escojo el segundo no vuelve a hacer un filtro por el segundo select... me podrian ayudar a recuperar ambos valores para que pasen a la funcion

desde ya mil gracias...
__________________
Buena Vida...
Francisco

Última edición por Bluesman74cl; 06/07/2005 a las 13:25 Razón: Tema solucionado
  #2 (permalink)  
Antiguo 06/07/2005, 18:32
 
Fecha de Ingreso: febrero-2004
Mensajes: 49
Antigüedad: 20 años, 2 meses
Puntos: 0
por lo que he entendido, tienes 3 selects 2 de ellos rellenos con las marcas y las lineas y uno de ellos vacio el cual se rellenara dependiendo de lo que se seleccione en los otros dos selects.

Por lo que veo en tu codigo, solo llamas a la funcion sublist cuando se selecciona una opcion en el primer select (marcas). Por lo tanto es normal que el 3er select solo dependa de este. Cuando seleccionas una opcion en el segundo select... no debe ocurrir nada.

Lo que puedes hacer es añadir la funcion sublist a los dos selects (marcas y lineas) en el onChange, pero comprobar antes de ejecutarla si se ha seleccionado algun valor en los dos selects. Si es asi.. se ejecuta la funcion, sino no se ejecuta.

Tambien deberias cambiar la funcion sublist para que dependiera del select lineas... ya que no veo en la consulta q haces dentro de la funcion q esta dependa de las lineas como dices que quieres.

<td>
<select name="CmbMarca" size="1" id="familia" onChange = "javascript:if (document.form.CmbLinea.value<>0)
sublist(this.form, this.value, getElementById('familia2').value);" onBlur="javascrit:marca();">
<option value=0 selected>Seleccione Marca</option>
<option value=1>Sony</option>
<option value=2>Creative</option>
</select>
</td>
<td>
<select name="CmbLinea" id="familia2" onChange = "javascript:if (document.form.CmbLinea.value<>0)
sublist(this.form, getElementById('familia').value, this.value);">
<option value=0 selected>Seleccione &nbsp;L&iacute;nea</option>
<option value=1>Audifonos</option>
<option value=2>CDs</option>
</td>
<td>

donde 'form' es el nombre del formulario

Última edición por M@rLocK; 06/07/2005 a las 18:39 Razón: errores en el codigo enviado
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 16:44.