Foros del Web » Programando para Internet » Javascript »

Como obtener todos los campos de un formulario?

Estas en el tema de Como obtener todos los campos de un formulario? en el foro de Javascript en Foros del Web. Estimados amigos, Tengo una duda y me gustaría que me ayudaran. Tengo un formulario que tiene unas listas dependientes cuya info proviene de una base ...
  #1 (permalink)  
Antiguo 20/07/2006, 20:41
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 5 meses
Puntos: 6
Pregunta Como obtener todos los campos de un formulario?

Estimados amigos,

Tengo una duda y me gustaría que me ayudaran.

Tengo un formulario que tiene unas listas dependientes cuya info proviene de una base de datos. Es decir, al cambiar un valor en la lista (Onchange), se activa una rutina en Javascript que carga el nuevo valor de la lista y lo envia a la página ASP para que esta busque en la B/D.

Aca está la rutina

Código:
function busco_estados()
{
var cod_pais = registro.x_pais.value;
var pagina    = registrar_empresa.asp?cod_pais="+cod_pais;
location.href=pagina;
}
registrar_empresa.asp es mi formulario, que también busca en la base de datos y si encuentra valores los muestra. Por esta razón la rutina javascript hace el llamado con los parametros.


El problema con esto es que cada vez que hay un cambio de valor en alguno de las listas dependientes, al recargar, es decir, al llamar la rutina Javascript, se desaparecen los valores de los otros campos de la forma, ejemplo, campos de texto, etc.

Yo podría enviarlos como parametros a la página, de la misma forma como envío la variable cod_pais, sin embargo, son mas de 30 campos.

Lo que deseo, antes de hacerlo de esa manera tan poco elegante, es ver si existe alguna forma de "barrer" todos los campos de la forma, tal como se puede hacer en ASP asi:

Código:
   for each field in request.form
    	      fieldName  = field
              fieldValue = request.form(fieldName) 
              tString=tString &fieldName& "=" &Server.UrlEncode(fieldValue)&"&"
   next
Gracias de antemano por su respuesta.
Luis
  #2 (permalink)  
Antiguo 21/07/2006, 02:19
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Pues con elements...

var total=document.forms.nombre_form.elements.length;
for (i=0;i<total;i++) {
elemento=document.forms.nombre_form.elements[i].value;
//Y ya procesa lo q tengas q hacer...
}
__________________
La muerte es un camino que todos debemos recorrer...
  #3 (permalink)  
Antiguo 21/07/2006, 06:12
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 5 meses
Puntos: 6
Gracias...!

Aun tengo una duda:

En la línea elemento=document.forms.nombre_form.elements[i].value;
obtengo el valor del elemento de la forma..

¿Como obtengo el nombre del campo ?

Lo digo porque me interesa tener una cadena asi:

cadena = cadena+"&"+campo+valor

para ir contatenando tanto los nombres de los elementos como sus valores.

Saludos, Luis
  #4 (permalink)  
Antiguo 21/07/2006, 08: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
Hola:

Tal como consultas el atributo value, puedes consultar el atributo name... en este caso creo que hay que usar mayúaculas...

nombre = document.forms.nombre_del_form.elements[i].NAME;

Pruébalo y nos cuentas...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 21/07/2006, 14:12
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 5 meses
Puntos: 6
Excelente!...

Un millon de gracias!
  #6 (permalink)  
Antiguo 24/07/2006, 01:28
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 5 meses
Puntos: 6
De acuerdo

Amigos,
Aca está la función que permite obtener todos los datos de una forma cuando es necesario hacer reload para buscar algo en la B/D.

Código:
function carga_datos()
{
var total=document.forms.registro.elements.length;
var cadena =""
//document.write(total);
for (i=0;i<total;i++) 
{
var valor  =document.forms.registro.elements[i].value;
var nombre =document.forms.registro.elements[i].name;
var cadena = cadena +nombre+"="+valor+"&";
}
var pagina = "registrar_empresa.asp?"+cadena;
//document.write(pagina);
location.href=pagina;
}
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:21.