Foros del Web » Programando para Internet » Javascript »

Concatenar cadena o crear array

Estas en el tema de Concatenar cadena o crear array en el foro de Javascript en Foros del Web. Una de novato: Tengo este código: Código: $("‪#‎cuestionario‬").find(':input').each(function() { var elemento= this; $('#' + elemento.id).attr("disabled","disabled"); enviar = [elemento.id + ': ' + elemento.value ]; }); ...
  #1 (permalink)  
Antiguo 10/10/2014, 10:52
Avatar de netovs  
Fecha de Ingreso: enero-2010
Ubicación: Mexico DF
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 9
Pregunta Concatenar cadena o crear array

Una de novato:
Tengo este código:
Código:
$("‪#‎cuestionario‬").find(':input').each(function() {
var elemento= this;
$('#' + elemento.id).attr("disabled","disabled");
enviar = [elemento.id + ': ' + elemento.value ]; 
});
Donde #cuestionario es TODO un formulario del cual colecto las propiedades id y value de cada elemento para 1. deshabilitar elementos que no usaré y 2. intentar juntar una cadena llamada enviar que despues usare en un data de .ajax para enviar a un PHP, el asunto es que cuando trato de ver el resultado de la variable enviar, sólo obtengo el último elemento del recorrido del each, es decir, no puedo unir CADA ELEMENTO en la cadena como se haría en PHP con un .= o meterlo en un arreglo...
__________________
No por que a mi nadie me ayudo a aprender a programar yo no les voy a ayudar ...

Comunicación Web
  #2 (permalink)  
Antiguo 10/10/2014, 11:42
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Concatenar cadena o crear array

Si en PHP lo haces con .=, en JS lo puedes hacer con +=. Si sabes hacerlo con un array en javascript también tienes arrays.
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 10/10/2014, 13:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Concatenar cadena o crear array

Otra forma, además de formar una query string, sería utilizando un objeto literal:

Código Javascript:
Ver original
  1. var enviar = {}; //Declaro al objeto literal
  2. $("‪#‎cuestionario‬").find(':input').each(function() {
  3.     var elemento = this;
  4.     $('#' + elemento.id).attr("disabled","disabled");
  5.     enviar[elemento.id] = elemento.value;
  6. });

De este modo, el objeto enviar contendrá a los valores de cada elemento del formulario, asignado cada uno de estos a un atributo cuyo nombre será el id de cada elemento.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 10/10/2014, 15:52
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: Concatenar cadena o crear array

En caso de querer un array, existe el método jQuery.fn.map:

Código Javascript:
Ver original
  1. var array = $("‪#‎cuestionario‬").find(':input').map(function() {
  2.     $(this).attr("disabled","disabled");
  3.     return this.id + ': ' + this.value;
  4. });

Pero si quieres enviar un JSON, mejor aprovecha la idea de Alexis88:
var data = { }
Código Javascript:
Ver original
  1. $("‪#‎cuestionario‬").find(':input').map(function() {
  2.     $(this).attr("disabled","disabled");
  3.     data[this.id] = this.value;
  4. });
  5.  
  6. /* ... */
  7.  
  8. $.post(url, data)

Un saludo!
__________________
github.com/xgbuils | npm/xgbuils

Etiquetas: cadenas, javascript+html, jquery, string
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 18:04.