Foros del Web » Programando para Internet » ASP Clásico »

select multiple

Estas en el tema de select multiple en el foro de ASP Clásico en Foros del Web. Buenos dias foreros!!!. Bueno tengo un pequeño problema con un select que cuando lo generé en el formlario lo hice con la opción de selección ...
  #1 (permalink)  
Antiguo 03/07/2006, 08:38
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 8 meses
Puntos: 0
Pregunta select multiple

Buenos dias foreros!!!.
Bueno tengo un pequeño problema con un select que cuando lo generé en el formlario lo hice con la opción de selección multiple, o sea que en mi base de datos se guardo asi: general, técnico, planificación, pero ahora que estoy haciendo un form para que pueda actualizar los datos tengo el siguiente código
El problema es que cuando trato de sacar seleccionado el campo que esta guardado no se selecciona ninguno porque existen 3 campos y separados con una coma, cómo puedo hacer la comparación??


Código:
<select name="tipologia" class="cmb" id="tipologia">
                            <%			  
							do while not Tipot1.EOF
							 nombre = Tipot1 ("tipologia")
							  if  Tipot1 ("tipologia") = "" & trim(Tabla4.fields(7)) & "" then
								strSelected = "selected"
							  else
								strSelected = ""
							  end if
							  Response.Write("<option "&strSelected&" value='"&nombre&"'>"&nombre&"</option>")
							  Tipot1.MoveNext
							Loop	
				  
				  %>
                          </select>
Muchisimas gracias por la ayuda que puedan prestarme.
Pilly
  #2 (permalink)  
Antiguo 03/07/2006, 23:48
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
cada valor del múltiple lo puedes aislar con la función split(). Investiga, hermano
  #3 (permalink)  
Antiguo 04/07/2006, 10:14
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Otra cosa es que hagas un InStr() para saber si el elemento está realmente dentro de la lista de elementos y ahí ponerle el "selected" o no.
__________________
...___...
  #4 (permalink)  
Antiguo 05/07/2006, 09:19
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 8 meses
Puntos: 0
Muchas gracias por el dato Al Zuwaga, no sabia de la función InStr(), la Split no me servia mucho por que tenia que generar más código, bueno para el que le sirva les pongo como me quedó el código:

Código:
<% 
							 do while not Tipot1.EOF
							 nombre = Tipot1 ("tipologia")
							 arreglo = "" & trim(Tabla.fields(10)) & ""
						    %>
							<option value="<%=nombre%>"<% if (instr(arreglo, nombre)) then response.write "selected" %>><%=nombre%></option>
						    <%
							Tipot1.MoveNext
							Loop
							%>
  #5 (permalink)  
Antiguo 05/07/2006, 10:16
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Código:
<%
arreglo = "," & Replace(trim(Tabla.fields(10)), ", ", ",") & ","
do while not Tipot1.EOF
nombre = Tipot1("tipologia")
%>
<option value="<%=nombre%>"<% if (instr(arreglo, "," & nombre & ",")) then response.write " selected" %>><%=nombre%></option>
<%
Tipot1.MoveNext
Loop
%>

Genial, pero te paso unas modificaciones (que no las probé, pero deberían funcionar)
Primero, saqué la asignación de datos de la variable arreglo fuera del do while (no es nenesario que esté adentro)
Segundo (supongo que los delimitadores son las comas), agregué una coma al inicio y otra al final del arreglo (además de eliminar los espacios entre elementos del arreglo en caso de existir)
Tercero, en el InsTr() comparo ",nombre,"... para evitar posibles inconsistencias (por ejemplo existe "casa", "casa blanca", "casa rozada" y "blanca" y consultás si "blanca" está... te devuelve que si en la posición 2 y 4)

Saludos
__________________
...___...
  #6 (permalink)  
Antiguo 05/07/2006, 11:42
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 8 meses
Puntos: 0
Tienes toda la razón maestro!!!, funciona muy bien

Saludos
Pilly
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:38.