Inicio > Javascript > gandalf26 > Llenar forma segun seleccion de lista .

Llenar forma segun seleccion de lista .

Experto:
Usuario:
Fecha: 29/05/2003
Valoración: (5,00 sobre 5) Categoría: Javascript
26/05/2003
ginis, usuario preguntando en Javascript
Usuario
Bueno, no he podido encontrar una buena solución.
La idea es que tengo una forma.
Inicialmente tengo una lista de usuarios, segun el usuario que seleccione debo llenar los demas campos que estan en la misma forma.

La pregunta seria, como puedo conocer el valor que escogio de la lista ,
para poder seleccionar segun este valor los datos que se asignaran a la forma.

Agradedzco cualquier ayudita...
26/05/2003
ginis, experto respondiendo en Javascript
Experto
Mejor que responderte yo, creo que te puede venir bien verlo en:

http://www.webestilo.com/javascript/js31.phtml

;)

Espero que te ayude.

Salu2
26/05/2003
ginis, usuario preguntando en Javascript
Usuario
Bien te agradezco, pero creo que no explique bien.
La idea es: se escoge un valor de la lista OK.
Tengo que obtener el valor que escogio de la lista.
Con este valor debo consultar (dinamicamente) los datos que voy a poner en los demas campos de la forma.
Ejemplo lista: 1,2,3.

Si escoges 1.
Consulto el usuario de id 1.
Traigo sus datos y estos datos son los que enviare a un javascript para que cambie el contenido de los demas campos de la forma.
No se si ahora me explique mejor.

Resumiendo : necesito alguna forma en que yo pueda capturar el valor que selecciono de la lista y asignarlo a una variable en lo que sea ejemplo
Jsp una variable x = form1.lista.value
ColdFusion <cfset x= form1.lista.value>

esta asignacion no la hago a una variable de Javascript sino a otro tipo de variable.

Es como cuando uno asocia a el evento submit que en el siguiente archivo uno puede tener acceso al contenido de la forma mediante request.getParameter(...)

que hubiera algo que pudiera usar como ese request.get.... pero en la misma pagina


Ayudame por fis...
27/05/2003
ginis, experto respondiendo en Javascript
Experto
Ah! mezclando con JSP!, ok.

1.- No puedes pasar variables de js a jsp de manera directa en la misma pagina...

Si quieres hacer eso, tienes que recargar la pagina pasandole por parametro el valor del select :)

Haces algo asi:

<%
if(request.getParameter("seleccion")==null){
//no viene parametro, luego tienes que poner el html para cogerlo...
%>
HTML y js que te meta en la variable de js "pepe" lo que elija el cliente

Puedes hacer un formulario que se envie a si mismo o un link a la propia pagina añadiendo el parametro:
self.location+="?seleccion="+pepe;
<%
}else{//te viene el parametro...
%>

Sacas los datos del usuario

<%}%>

Entiendes el esquema? Espero que si, si no, vuelve a preguntar...

Salu2.
27/05/2003
ginis, usuario preguntando en Javascript
Usuario
Mira existe un problema porque el self.location va a quedar con todo si vuelven a escoger algo en la lista .

es decir: ...?seleccion=page?seleccion=page?seleccion=page
estoy trtando de que lo borre.
mira lo que he hecho.

Te adjunto lo que hice.

<script>
function obtenerDatosUsuario(idUsuario){
var identificador
var prueba
var cadena

cadena="Gina?Alexandra";

identificador = idUsuario.value;
alert("ENVIARE"+identificador);
/* prueba = cadena.indexOf("3",0);
alert("PRUEBA "+prueba);*/
prueba = self.location;
if ( prueba.indexOf("3",0) != -1 ){
self.location += "?listaUsuarios=" + idUsuario.value;
}else{
cadena = self.location;
self.location = "";
self.location = cadena + "?listaUsuarios=" + idUsuario.value;
}
alert("LOCATION + " + self.location);
}

</script>


<body>


<!---<%if(request.getParameter("listaUsuarios")==null){ %>--->

<form name="form1" method="post" action="ejercicio1.cfm">
<select name="listaUsuarios" onChange="obtenerDatosUsuario(form1.listaUsuarios);">
<option value="Gina">Gina
<option value="Alexandra">Alexandra
<option value="Adriana">Adriana
</select>
<input type="text" name="nombre">

<!---<%}else{
idUsuario = request.getParameter("listaUsuarios");
usuario = obtenerUsuario(idUsuario);
--->


<!---<%}%>--->
</form>
</body>
</html>
28/05/2003
ginis, experto respondiendo en Javascript
Experto
Hola,

Me alegro de que entendieras el esquema y lo hayas hecho asi; me gusta ver que la gente me entiende :)

Pero hay algo que no entiendo en como lo haces, y tal vez sea culpa mia... Esa funcion de javascript no la necesitas. Envia el formulario a la propia pagina, donde ya tienes el request.getParameter()...

Es decir, con esto:

<html>
<head>
<title>:)</title>
</head>
<body>
<!---<%if(request.getParameter("listaUsuarios")==null){ %>--->
<form name="form1" method="post" action="ejercicio1.cfm">
<select name="listaUsuarios" onChange="obtenerDatosUsuario(form1.listaUsuarios);">
<option value="Gina">Gina
<option value="Alexandra">Alexandra
<option value="Adriana">Adriana
</select>
<input type="text" name="nombre">
<!---<%}else{
idUsuario = request.getParameter("listaUsuarios");
usuario = obtenerUsuario(idUsuario);
--->


<!---<%}%>--->
</form>
</body>
</html>

Ya deberia funcionarte, si es que la pagina se llama ejercicio1.cfm, que es a donde se envia el formulario. En caso de que no fuese asi, envia el formulario a la propia pagina.

Espero que te ayude y si no, pregunta de nuevo.

Salu2
28/05/2003
ginis, usuario preguntando en Javascript
Usuario
Ok, te agradezco mucho tus prontas respuestas.

No entiendo muy bien lo que me dices.

Creo que lo que me dices es:

poner en el action de la forma referencia a la misma pagina es decir

/*Nombre pagina ejercicio1.jsp*/
<form name="form1" method="post" action="ejercicio1.jsp">
/*esto en cambio del self.location*/
Si es así.

pero no estoy segura que me funcione,
porque el evento asociado es onchange en la lista y creo que no me hace submit del formulario.
Creo que si aqui llamo a un javascript en el cual haga un document.form1.submit(); funciona.

Cierto ? Cuentame

Ademas tengo otros botones en la misma forma que son los que me daran el action.

Lo que yo hice me quedo como te mostre en el anterior y el script me quedo algo asi:

<script>

function obtenerDatos(idUsuario){
self.location += "?listaUsuarios=" + idUsuario.value;
document.form1.submit();

}
/*Seria cambiar esto por el solo submit*/
function obtenerDatos(url){
document.form1.submit();
document.form1.action=url;
}


Sin necesidad de pasar el atributo por parametro es decir en el url ?variable..

</script>

lo que sigue. Lo que ya viste.

Cuentame...
Que pena lo intensa???? pero es que estoy muy colgada.
Y desde donde estoy no puedo probar.

Bendiciones.
29/05/2003
ginis, experto respondiendo en Javascript
Experto
Ok, pensemos en una cosa, tratare de explicarlo todo desde el principio.

<%
if(request.getParameter("pepe")==null){
/*
si no tienes ningun parametro...
*/
%>

<form action="la_propia_pagina" mehtod="post" name="form">
<select name="pepe" onChange="this.document.form.submit()">
<option value="Gina">Gina
<option value="Alexandra">Alexandra
<option value="Adriana">Adriana
</select>
</form>
/*
Este formulario deberia enviarse con el onChange, y el valor seleccionado pasa a la propia pagina (por ponerla en el action...) por post, de modo que cuando se recargue la pagina, ya tiene en el request.getParameter("pepe") el valor elegido. El parametro no pasa por la url, sino por post en el formulario directamente, por eso no necesitas un javascript que te ponga el parametro en la url...
*/
<%}else{
/*
aqui ya tienes el parametro no nulo con el valor elegido en el select, por lo que llamas a la funcion java con el parametro.
*/
idUsuario = request.getParameter("listaUsuarios");
usuario = obtenerUsuario(idUsuario);
%>

Te queda claro asi? Espero que si, pero si no, pregunta de nuevo.

Espero que te ayude,

Salu2
29/05/2003
ginis, usuario preguntando en Javascript
Usuario
Ok. Muchas gracias.
Ayer implemente lo que crei me habias sugerido y consegui entender y hacerlo de una forma muy sencilla realemente.

Me complace mucho tener este tipo de recursos y agradezo mucho lo "buen experto " que eres.

Bye. Muchas Bendiciones.
Enlaces patrocinados