Foros del Web » Programando para Internet » Javascript »

Facilito: Según valor de variable preseleccionar valor de lista

Estas en el tema de Facilito: Según valor de variable preseleccionar valor de lista en el foro de Javascript en Foros del Web. La situación: 1.- En un formulario hay un campo de lista desplegable con más de 200 opciones posibles. 2.- Cuando el usuario lo rellena por ...
  #1 (permalink)  
Antiguo 12/12/2006, 03:55
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Facilito: Según valor de variable preseleccionar valor de lista

La situación:

1.- En un formulario hay un campo de lista desplegable con más de 200 opciones posibles.

2.- Cuando el usuario lo rellena por primera vez selecciona por ejemplo el "<option value="4">Valor 4</option>".

3.- Este valor se almacena en una base de datos.

El problema:

Cuando se edita el registro de todos los datos rellenados en el formulario, necesito que por defecto en la lista desplegable aparezca como opción seleccionada el valor que se escogió la primera vez. Pero no quiero que sea el típico:

<option value="4" <%If variable = 4 then %>selected <%end if%>>Valor 4</option>

Son más de 200 opciones y no quiero pasarme dos horas declarando una condicional por cada valor.
Necesito declarar una sola condición y que se aplique a todos los valores de la lista.

Gracias anticipadas.
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #2 (permalink)  
Antiguo 12/12/2006, 10:02
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Facilito: Según valor de variable preseleccionar valor de lista

Que tal mesmo.

Lo puedes hacer son javascript, una vez que se carga la página, ejecutas el siguiente código que busca dentro del combo el valor que quieres que este seleccionado.

Código:
for(var lnuIdx = 0;lnuIdx <= document.cboCombo.length;lnuIdx++)
	if(lstValorABuscar == document.cboCombo.options[lnuIdx].value)
		document.cboCombo.selectedIndex = lnuIdx;
Cualquier duda aquí estamos.

Saludos y suerte!
  #3 (permalink)  
Antiguo 12/12/2006, 10:32
 
Fecha de Ingreso: junio-2004
Mensajes: 72
Antigüedad: 19 años, 10 meses
Puntos: 2
De acuerdo Re: Facilito: Según valor de variable preseleccionar valor de lista

Si el dato se guarda en la base de datos , te recomiendo esto:

Código:
<select name="Mi_Select">
<%
'Si Estas en Access
Dim Conexion
Conexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(./Tu_Base.mdb")
StrSql = "SELECT CampoAChekear FROM Tu_Tabla"
set RS = Server.CreateObject("ADODB.Recordset")
RS.Open strSql, Conexion, 3

IF Variable = RS("CampoAChekear") Then
	strSelect = "select" 'Igual
Else
	strSelect = "" 'Vacio
End IF

For I = 1 To 200
	Response.Write "<option " & strSelect & " value=""" & I & """>" & I & "</option>"
Next
%>
</select>
Fijate si te sirve esto.... fue lo primero que se me ocurrio
  #4 (permalink)  
Antiguo 13/12/2006, 07:40
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Re: Facilito: Según valor de variable preseleccionar valor de lista

Gracias por la ayuda, he probado de esta manera:



<script language="JavaScript">
var Valor_campo
var lnuIdx
Valor_campo = <%= Provincia %>
for(lnuIdx = 0;lnuIdx <= document.FormNuevoContenido.Provincia.length;lnuId x++);
if(Valor_campo == document.FormNuevoContenido.Provincia.options[lnuIdx].value);
document.FormNuevoContenido.Provincia.selectedInde x = lnuIdx;
</script>

Donde FormNuevoContenido es el nombre del formulario y Provincia el nombre de la lista, pero me dá un error ¿Tengo mál la sintaxis?
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #5 (permalink)  
Antiguo 13/12/2006, 08:06
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Re: Facilito: Según valor de variable preseleccionar valor de lista

Cita:
Donde FormNuevoContenido es el nombre del formulario y Provincia el nombre de la lista, pero me dá un error ¿Tengo mál la sintaxis?
¿Qué error?
  #6 (permalink)  
Antiguo 13/12/2006, 08:42
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Re: Facilito: Según valor de variable preseleccionar valor de lista

El error es:

document.FormNuevoContenido.Provincia.length en Nulo o no es un objeto
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #7 (permalink)  
Antiguo 13/12/2006, 09:35
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Facilito: Según valor de variable preseleccionar valor de lista

Que tal yomesmo.

Te marco en tu código, en rojo los "errores" de programación, y en verde algunas sugerencias.

Tu código
Código:
<script language="JavaScript"> 
var Valor_campo//aunque no se necesario es recomendable poner punto y coma.
var lnuIdx// punto y coma
Valor_campo = <%= Provincia %> // punto y coma.
for(lnuIdx = 0;lnuIdx <= document.FormNuevoContenido.Provincia.length;lnuId x++);
if(Valor_campo == document.FormNuevoContenido.Provincia.options[lnuIdx].value);
document.FormNuevoContenido.Provincia.selectedInde x = lnuIdx;
</script>
Código depurado.

Código:
<script language="JavaScript"> 
var Valor_campo;
var lnuIdx;
Valor_campo = <%= Provincia %> ;

for(lnuIdx = 0;lnuIdx <= document.FormNuevoContenido.Provincia.length;lnuIdx++);
    if(Valor_campo == document.FormNuevoContenido.Provincia.options[lnuIdx].value);
        document.FormNuevoContenido.Provincia.selectedIndex = lnuIdx;
</script>

Pruebaló y nos comentas.

Saludos y suerte!
  #8 (permalink)  
Antiguo 13/12/2006, 10:46
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Re: Facilito: Según valor de variable preseleccionar valor de lista

Ahora me da "Error de sintaxis"

Joder, vaya locura el javascript!!
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #9 (permalink)  
Antiguo 13/12/2006, 11:14
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Facilito: Según valor de variable preseleccionar valor de lista

Que tal.

Prueba así, le quite un par de punto y coma y agregue un par de apostrofos:
Código:
<script language="JavaScript"> 
var Valor_campo;
var lnuIdx;
Valor_campo = '<%= Provincia %>' ;

for(lnuIdx = 0;lnuIdx <= document.FormNuevoContenido.Provincia.length;lnuIdx++)
    if(Valor_campo == document.FormNuevoContenido.Provincia.options[lnuIdx].value)
        document.FormNuevoContenido.Provincia.selectedIndex = lnuIdx;
</script>
y pon ´tu código para casos como este.

saludos y suerte!

Última edición por daniel00; 13/12/2006 a las 11:16 Razón: Completar info.
  #10 (permalink)  
Antiguo 13/12/2006, 11:15
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Facilito: Según valor de variable preseleccionar valor de lista

Hola:

Has probado el código de las FAQs... asignar directamente al value del select el valor que quieras que quede selected... está probado en los 3 navegadores principales. Seleccion en un select (formularios)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #11 (permalink)  
Antiguo 13/12/2006, 14:01
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Re: Facilito: Según valor de variable preseleccionar valor de lista

Caricatos, el problema es que la cabezera de todas las páginas es un fichero Include, si pongo esa función en el <body> me la cargará en el resto de las páginas, y quisiera evitar esto.

Sinceramente no os podeis la de horas que pierdo con al javascript, cada vez me convenzo más de que es un lenguaje absolutamente prehistórico, cuando no da incompatibilidades con tal explorador, te marea con estupideces como la que me trae cabezón... Menuda pedrada en la cabeza le daba yo al que inventó este lenguaje!!

En fin, si a alguien se le ocurre algo, se agradece.

Daniel00 me sigue dando un error de "es nulo o no es un objeto", cuando el objeto existe, no hay ningún otro con ese valor y la sintaxis me consta que esta simplemente PERFECTA.
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #12 (permalink)  
Antiguo 13/12/2006, 14:20
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Facilito: Según valor de variable preseleccionar valor de lista

Hola:

Un tag javascript lo puedes poner perfectamente en el cuerpo de tu página, y puedes usar las funciones inmediatamente después de declararlas...
Pero si vas a referenciar algo, debes estar seguro de que existe.

Código:
<form action="" method="get" name="f">
<select name="s">
<option value="1">valor 1</option>
<option value="2">valor 2</option>
<option value="3">valor 3</option>
<option value="4">valor 4</option>
</select>
</form>
<script>
document.forms.f.s.value = "3";
</script>
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #13 (permalink)  
Antiguo 13/12/2006, 15:35
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Re: Facilito: Según valor de variable preseleccionar valor de lista

Aleluya, por fin funciona!!

Ya me selecciona la provincia al recargar la página, pero me aparece este error:

'document.FormNuevoContenido.Provincia.options[...].value' es nulo o no es un objeto.
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #14 (permalink)  
Antiguo 13/12/2006, 15:48
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Facilito: Según valor de variable preseleccionar valor de lista

Puedes poner más código por favor.

saludos!
  #15 (permalink)  
Antiguo 13/12/2006, 15:51
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Re: Facilito: Según valor de variable preseleccionar valor de lista

Daniel00, he utilizado el código que tu me has pasado (Muchas gracias). Esta puesto así:


<select name="Provincia" size="1" id="Provincia">
<option value="" selected="selected">Selecciona...</option>
<option value="15">A Coru&ntilde;a</option>
<option value="1">Alava</option>
<option value="2">Albacete</option>
<option value="3">Alicante</option>
<option value="4">Almer&iacute;a</option>
<option value="33">Asturias</option>
<option value="5">Avila</option>
<option value="6">Badajoz</option>
<option value="7">Baleares</option>
<option value="8">Barcelona</option>
</select>

<script language="JavaScript">
var Valor_campo;
var Idx;
Valor_campo = '<%= Provincia %>' ;

for(Idx = 0;Idx <= document.FormNuevoContenido.Provincia.length;Idx++ )
if(Valor_campo == document.FormNuevoContenido.Provincia.options[Idx].value)
document.FormNuevoContenido.Provincia.selectedInde x = Idx;
</script>

Y cuando lo ejecuto funciona pero dá el error que te comentaba en el mensaje anterior.

PD: El problema era que no me había percatado de que el javascript tenía que ir por debajo de la lista. (Torpón que es uno)
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #16 (permalink)  
Antiguo 13/12/2006, 17:16
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Facilito: Según valor de variable preseleccionar valor de lista

Que tal.

La línea :

for(Idx = 0;Idx <= document.FormNuevoContenido.Provincia.length;Idx++ )


Cambialá por:

for(Idx = 0;Idx <= document.FormNuevoContenido.Provincia.length - 1;Idx++ )

Y yo creo que con eso ya es suficiente, ya que los arreglos empiezan con el indice cero, y estaba buscando un elemento que no existe.

Saludos y suerte!
  #17 (permalink)  
Antiguo 13/12/2006, 17:23
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 5 meses
Puntos: 1
Re: Facilito: Según valor de variable preseleccionar valor de lista

SI SEÑOR!!

Estoy en deuda contigo, gracias amigo!!
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
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 14:23.