Foros del Web » Programando para Internet » Javascript »

como recuperar los valores de varios campos con javascript

Estas en el tema de como recuperar los valores de varios campos con javascript en el foro de Javascript en Foros del Web. Hola foro, necesito recojer los valores de unos campos pero quiero saber si se pueden recojer en un array y si se puedo como tendria ...
  #1 (permalink)  
Antiguo 19/05/2012, 19:51
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años, 9 meses
Puntos: 5
como recuperar los valores de varios campos con javascript

Hola foro, necesito recojer los valores de unos campos pero quiero saber si se pueden recojer en un array y si se puedo como tendria que hacerlo, partiendo de que tengo algo asin:

Código HTML:
Ver original
  1. <input type='text' name='campo1' value='valor0'/>
  2. <input type='text' name='campo2' value='valor1'/>
  3. <input type='text' name='campo3' value='valor2'/>
  4. <input type='text' name='campo4' value='valor3'/>
  5. <input type='text' name='campo5' value='valor4'/>
  6. <input type='text' name='campo6' value='valor5'/>

Lo que intento es recuperar todos estos valores pero pasandole un solo parametro a mi funcion, la forma que lo hago no creo que sea la correcta, hice algo asin:
Código HTML:
Ver original
  1. miFuncion(document.form.campo1,document.form.campo2,document.form.campo3,....)


Hay otra forma de hacerlo?
Saludos
  #2 (permalink)  
Antiguo 19/05/2012, 20:22
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 7 meses
Puntos: 269
Respuesta: como recuperar los valores de varios campos con javascript

no se bien que intentas hacer. fijate si algo asi te sirve:

Código HTML:
Ver original
  1. <input type='text' name='campo1' value='valor0'/>
  2. <input type='text' name='campo2' value='valor1'/>
  3. <input type='text' name='campo3' value='valor2'/>
  4. <div id="out"></div>

Código Javascript:
Ver original
  1. //imprimimos el value de todos los inputs
  2. function getAllValueInputs(){
  3.     var inputs = document.getElementsByTagName("input");
  4.     var out = document.getElementById("out");
  5.     for(var i = 0; i<inputs.length; i++){
  6.         if(inputs[i].type == "text"){
  7.             out.innerHTML += inputs[i].value + "</br>";
  8.         }
  9.     }
  10. }
  11. //imprimimos el value del input pasado a la funcion.
  12. function getValueInput(inp){
  13.     var inputs = document.getElementsByTagName("input");
  14.     var out = document.getElementById("out");
  15.     for(var i = 0; i<inputs.length; i++){
  16.         if(inputs[i].type == "text"){
  17.             if(inputs[i].name == inp){
  18.                 out.innerHTML += inputs[i].value + "</br>";
  19.             }
  20.         }
  21.     }
  22. }
  23. window.onload = function(){
  24.     getAllValueInputs();
  25.     getValueInput("campo2"); //pasas como argumento el valor del atributo name
  26. }


Saludos
  #3 (permalink)  
Antiguo 19/05/2012, 20:56
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años, 9 meses
Puntos: 5
Respuesta: como recuperar los valores de varios campos con javascript

Hola cristian_cena, bueno en principio decirte que gracias por tu colaboracion, exactamente no es eso lo que quiero, tengo una funcion donde necesito pasar los valores de los campos como parametros en mi funcion algo asin:

miFuncion(document.getElementById('campo1'),docume nt.getElementById('campo2'),.....)
(suponiendo que tengo un id en los campos)

y lo que no quiero es tener que pasar los valores de esta forma ya que tengo muchos campos que pasarle.

luego en la funcion tengo que pasarle estos datos por la url algo como esto:

ajax.open('get',url='pagina.php?campo1='+campo1+'& campo2='+campo2'+'campo3='+campo3,true)

no se si me explique mejor ahora, simplemente necesito pasar todos los valores de los campos como parametros en mi funcion, no se si hay alguna forma mas efectiva o correcta como un array , poniendo el mismo nombre en los campos algo asin campo[], no se si me explique mejor, y si esto es posible saludos.
  #4 (permalink)  
Antiguo 19/05/2012, 22:21
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 7 meses
Puntos: 269
Respuesta: como recuperar los valores de varios campos con javascript

Podes pasar un arreglo o un objeto por parámetro. veamoslo con un arreglo:

Una posibilidad sería que conociendo la cantidad de inputs pases la misma cantidad de valores:
Código HTML:
Ver original
  1. <input type='text' name='campo1'/>
  2. <input type='text' name='campo2'/>
  3. <input type='text' name='campo3'/>
Código Javascript:
Ver original
  1. function setValueInputs(arr){
  2.     var inputs = document.getElementsByTagName("input");
  3.     for(var i = 0; i<inputs.length; i++){
  4.         if(inputs[i].type == "text"){
  5.             inputs[i].value = arr[i];  
  6.         }
  7.     }
  8. }
  9. window.onload = function(){
  10.     var valores = ["valor1", 123, [12.5, false]];
  11.     setValueInputs(valores);
  12. }
​Otra posibilidad, es conociendo las id, pasarlas junto al valor:
Código HTML:
Ver original
  1. <input type='text' id='campo1'/>
  2. <input type='text' id='campo2'/>
  3. <input type='text' id='campo3'/>
Código Javascript:
Ver original
  1. function setValueInputs(arr){
  2.     for(var i = 0; i<arr.length; i++){
  3.         //alert(arr[i][0]);
  4.         var input_id = document.getElementById(arr[i][0]);
  5.         input_id.value = arr[i][1];
  6.     }
  7. }
  8. window.onload = function(){
  9.     var valores = [
  10.         ["campo1", "valor1"],
  11.         ["campo2",  112.250],
  12.         ["campo3",  false  ]
  13.     ];
  14.     setValueInputs(valores);
  15. }

Espero te sirva. Saludos.
  #5 (permalink)  
Antiguo 20/05/2012, 09:18
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años, 9 meses
Puntos: 5
Respuesta: como recuperar los valores de varios campos con javascript

Hola cristian_cena, realmente necesito exactamente eso que pusistes, pero no consigo adaptarlo, te pongo lo que hice por si me quieres corregir:

partiendo de que estos son los campos que tengo que pasarle como parametros a mi funcion y teniendo en cuenta que estos campos son dinamicos:
Código HTML:
Ver original
  1. <input type='text' id='campo1' name='campo1' value='valor1'/>
  2. <input type='text' id='campo2' name='campo2' value='valor2'/>
  3. <input type='text' id='campo3' name='campo3' value='valor3'/>

Código Javascript:
Ver original
  1. esta es la funcion que recupera los parametros para pasarlos por url :
  2.  
  3.     function setValueInputs(arr){
  4.         for(var i = 0; i<arr.length; i++){
  5.             //alert(arr[i][0]);
  6.             var input_id = document.getElementById(arr[i][0]);
  7.             input_id.value = arr[i][1];
  8.         }
  9.         var Ajax=objetoAajax();
  10.            Ajax.open('get','procesar.php?valor1='+arr[0][0]'&valor2='+arr[1][1]'&valor3='+arr[2][2],true);
  11.            Ajax.onreadystatechange = function() {
  12.                 if (Ajax.readyState == 4 && (Ajax.status == 200 || Ajax.status == 501)){
  13.                     document.getElementById('procesar_datos').innerHTML=Ajax.responseText;
  14.                  }
  15.             }
  16.          Ajax.send(null);
  17.          }
  18.     }
  19.  
  20. y esta es la forma que hago la llamada a dicha funcion:
  21.  
  22.     window.onload = function(){
  23.         var valores = [
  24.             ["campo1", document.getElementById('campo1').value],
  25.             ["campo2",  document.getElementById('campo2').value],
  26.             ["campo3",  document.getElementById('campo3').value ]
  27.         ];
  28.         setValueInputs(valores);
  29.     }

Pero no me funciona, que hice mal?

Saludos

Última edición por roboty; 20/05/2012 a las 09:25
  #6 (permalink)  
Antiguo 20/05/2012, 13:47
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 7 meses
Puntos: 269
Respuesta: como recuperar los valores de varios campos con javascript

Debes construir la cadena de consulta, recorriendo el arreglo y luego pasarla como parametro al método open.
No lo probé, pero mas o menos sería así:
Código Javascript:
Ver original
  1. function setValueInputs(arr){
  2.     var cadena = "";
  3.     for(var i = 0; i<arr.length; i++){
  4.         var id    = arr[i][0];
  5.         var valor = arr[i][1];
  6.         if(cadena == 0){
  7.             cadena = "procesar.php?" + id + "=" + valor;
  8.         }
  9.         else{
  10.             cadena += "&" + id + "=" + valor;
  11.         }
  12.     }
  13.     //alert(cadena);
  14.     var Ajax=objetoAajax();
  15.        Ajax.open('get',cadena,true);
  16.        Ajax.onreadystatechange = function() {
  17.             if (Ajax.readyState == 4 && (Ajax.status == 200 || Ajax.status == 501)){
  18.                 document.getElementById('procesar_datos').innerHTML=Ajax.responseText;
  19.              }
  20.         }
  21.      Ajax.send(null);
  22.      }
  23. }
  #7 (permalink)  
Antiguo 21/05/2012, 13:53
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años, 9 meses
Puntos: 5
Respuesta: como recuperar los valores de varios campos con javascript

Hola cristian_cena, gracias por tu colaboracion ahora me funciona perfecto, pero ya que estoy en aprendizaje me gustaria saber como pasarle los valores a mi funcion mediante un objeto, me podrias poner un pequeño ejemplo.

Saludos.
  #8 (permalink)  
Antiguo 21/05/2012, 17:07
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 7 meses
Puntos: 269
Respuesta: como recuperar los valores de varios campos con javascript

De la misma manera, solo que ahora recorres el objeto con el bucle "for ... in". Ël cual itera sobre todas las propiedades del objeto.
Ejemplo:
Código Javascript:
Ver original
  1. function imprimeObjeto(obj){
  2.     for (var prop in obj) { //recorremos el objeto con for...in
  3.       document.body.innerHTML += prop + " = " + obj[prop] + "<br>";
  4.     }
  5. }
  6. window.onload = function(){
  7.     var objeto = {a:1, b:2}; //el objeto
  8.     imprimeObjeto(objeto);   //pasado por parametro
  9. }
  10. //salida
  11. //a = 1
  12. //b = 2    ​​​​​​​​​​​
Saludos
  #9 (permalink)  
Antiguo 23/05/2012, 08:55
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años, 9 meses
Puntos: 5
Respuesta: como recuperar los valores de varios campos con javascript

Hola cristian_cena, gracias por tu colaboracion me fuistes de gran ayuda, un saludo.
  #10 (permalink)  
Antiguo 23/05/2012, 13:05
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 7 meses
Puntos: 269
Respuesta: como recuperar los valores de varios campos con javascript

De nada me alegro que te haya servido

Etiquetas: campos, funcion, input
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 20:27.