Foros del Web » Programando para Internet » Javascript »

Pasar valores de 1 form en particular a una función

Estas en el tema de Pasar valores de 1 form en particular a una función en el foro de Javascript en Foros del Web. Buenas, espero que alguien pueda ayudarme con lo siguiente... Tengo el siguiente código: Código PHP: < html > < head >        < title > Title here ...
  #1 (permalink)  
Antiguo 14/02/2003, 07:01
Avatar de BVis  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Antigüedad: 21 años, 5 meses
Puntos: 0
Pasar valores de 1 form en particular a una función

Buenas, espero que alguien pueda ayudarme con lo siguiente...

Tengo el siguiente código:
Código PHP:
<html>
<
head>
       <
title>Title here!</title>
<
script language="Javascript">
<!--
function 
muestra(indice) {
    
alert("MUESTRA "document.formulario[indice].nuevo_estado.value);
}
//-->
</script>
</head>
<body>
<form name="formulario[1]" method="GET">
<select name="nuevo_estado" onchange="muestra('1') ;document.formulario[1].submit()">
<option value="">
<option value="Revisándose">Revisándose
<option value="Rechazado">Rechazado
<option value="Validado">Validado
</select>
</form>
<form name="formulario[2]" method="GET">
<select name="nuevo_estado" onchange="muestra('2') ;document.formulario[2].submit()">
<option value="">
<option value="Revisándose">Revisándose
<option value="Rechazado">Rechazado
<option value="Validado">Validado
</select>
</form>
</body>
</html> 
Mi intención es que a partir de varios formularios (en este ejemplo simplificado, solo dos) donde hay listas desplegables (en realidad hay más variables) pueda obtener el valor y el indice de lo que hay en el formulario en el que se ha producido el evento 'onchange'.

¿Alguna idea?
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates

Última edición por BVis; 14/02/2003 a las 14:41
  #2 (permalink)  
Antiguo 14/02/2003, 09:42
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Buenas Vbis,

a ver si te sirve así

la función puede quedar simplemente en algo así:

<script language="Javascript">
<!--
function muestra(indice) {
alert("MUESTRA "+ indice.value + " Indice: " + indice.selectedIndex);
}
//-->
</script>

Y luego a cada uno de tus select les añades:


<select name="nuevo_estado" onchange="muestra(this)">

Yá me comentarás si era eso lo que buscabas.

saludos
  #3 (permalink)  
Antiguo 14/02/2003, 14:08
Avatar de BVis  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Antigüedad: 21 años, 5 meses
Puntos: 0
Pues no...desgraciadamente eso no me sirve..explicaré un poco más mi situación.

Tengo un montón de formularios, cada formulario tiene un nombre diferente, pues los formularios tienen dos variables asociadas.

1º El "estado" al que quiero cambiar una determinada fila (Revisado, Rechazado, etc).

2º El identificador de fila correspondiente. Lo paso mediante un 'hidden' que tiene un valor diferente para cada formulario.


Que es lo que pretendo realmente:

Cuando cambie un valor de una lista desplegable, mediante un 'onchange', ejecutar una función en javascript que me abra un pop-up u otro en función del valor elegido (es diferente para "validado" que para los otros valores) y además he de poder identificar que fila es la que cambio.

No se si parece un poco complicado, lo siento.

Alternativa:

En principio tenía pensado hacer un único formulario, el problema es como puedo identificar a cual de las 50 o 100 listas le he hecho el 'onchange', de ahí que use varios forms con un hidden con ese valor.

Bueno, espero que si alguien tiene algo de tiempo y ganas, me pueda ayudar, porque yo me he estado comiendo la cabeza y nada...

1 Saludo.
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates
  #4 (permalink)  
Antiguo 14/02/2003, 14:51
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola de nuevo,

creo que se puede hacer en un solo formulario. Pero no acabo de captar completamente qué necesitas.

Lo de un popup u otro está claro, pero

Cita:
y además he de poder identificar que fila es la que cambio.
¿De donde sale el dato de esa fila? a dónde hay que mandar ese dato??

Espero tu respuesta
  #5 (permalink)  
Antiguo 14/02/2003, 15:02
Avatar de BVis  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Antigüedad: 21 años, 5 meses
Puntos: 0
Ná... arreglao...soy tan cafre que ni pensé en pasarle el identificador como un valor más a la función...

ejemplo:

onchange="muestra(this,100)

y la función:

function muestra(estado,indice) {
alert("Estado: "+ estado.value + "\nId: " + indice);
}
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates

Última edición por BVis; 14/02/2003 a las 15:24
  #6 (permalink)  
Antiguo 14/02/2003, 15:03
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
jeje ok, me alegra que lo solucionaras
  #7 (permalink)  
Antiguo 14/02/2003, 17:15
Avatar de BVis  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Antigüedad: 21 años, 5 meses
Puntos: 0
Aunque ya está todo arreglado te explico un poco que es lo que pasaba...

Yo tengo una tabla con más de 7000 registros en una base de datos.

Dos de los campos de esa tabla son: Id y Estado.

Estado puede tener los valores aquellos: "Validado", "Rechazado", y un par más.

Id es un valor entero, puede valer 4, 4680 o 9045.

Para cada registro, muestro la información (todo paginado, claro está), y en un lugar, muestro una lista desplegable con los valores de "estado", por si quiero modificar el estado de un registro en particular.

La gracia estaba en que a la vez que escojo un nuevo estado para un registro en particular, pueda enviar tambien el ID, pues es a ese ID y no a otro al que debo de cambiar el estado.

Pero no pasa ná, todo arreglado.

De todos modos, muchas gracias tunait por la ayuda prestada y por las molestias.

1 Saludo.
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates
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 22:25.