Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Enviando array de inputs por ajax con json

Estas en el tema de Enviando array de inputs por ajax con json en el foro de Jquery en Foros del Web. Buenas estimados, tengo un formulario donde hay campos que son dinámicos, por ejemplo hay un campo 'email' donde por defecto hay 1 y pueden agregar ...
  #1 (permalink)  
Antiguo 02/05/2014, 21:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 381
Antigüedad: 15 años, 1 mes
Puntos: 6
Enviando array de inputs por ajax con json

Buenas estimados,

tengo un formulario donde hay campos que son dinámicos, por ejemplo hay un campo 'email' donde por defecto hay 1 y pueden agregar hasta 4 más (5 en total).

Mi pregunta es como armo el array en json? El mismo será enviado a un insert con php usando ajax.

Mas o menos mi codigo es asi:

Código Javascript:
Ver original
  1. onSuccess: function()
  2.             {
  3.         var parametros = {
  4.                     "nombre" : $("#nombre").val(),
  5.                     "razon" : $("#razon").val(),
  6.                     "telefono" : $("#telefono").val(),
  7.                     "email" : $("#email").val(),
  8. };
  9.  
  10. $.ajax(
  11. {
  12.     type: "POST",
  13.     dataType: "json",
  14.     url: "miPhp",
  15.     data: parametros,
  16. )}

Resumí el codigo, cualquier cosa puedo pasarlo completo.

Muchas gracias y saludos,
Gustav.
  #2 (permalink)  
Antiguo 02/05/2014, 22:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Enviando array de inputs por ajax con json

Si te refieres a enviar los 5 (o menos) emails en lugar de uno como muestras en el código, podrías tomar los inputs de los emails por su nombre de clase o por el tipo de input, alimentar un array con sus valores y enviar dicho array como valor, el cual será fraccionado en el archivo PHP para poder procesar cada dato.

Código Javascript:
Ver original
  1. var emails = $("input[type=email]"), //Array con todos los input de tipo email
  2.     total = emails.length; //El total de inputs de tipo email
  3.  
  4. //Botón para crear nuevos inputs de tipo email
  5. $("#add").click(function(){
  6.     var div = $("<div></div>"), //El <div> que lo contendrá
  7.         label = $("<label></label>"), //La etiqueta que mostrará el número de input
  8.         email = $("<input type = email />"); //El input de tipo email
  9.    
  10.     label.html("Email " + (++total) + ":"); //Añado contenido al label y aumenta 'total'
  11.     div.append(label, " " , email); //Adhiero la etiqueta y el input al <div>
  12.     $("section").append(div); //Adhiero el <div> a la sección de los inputs
  13.     emails = $("input[type=email]"); //Actualizo el array de inputs de tipo email
  14.     email.focus(); //Le doy el enfoque al nuevo input
  15.     if (total == 5) this.disabled = true; //Si ya hay 5 inputs, deshabilito el botón
  16. });
  17.  
  18. //Botón para almacenar el valor de cada input en el array 'valores'
  19. $("#fin").click(function(){
  20.     var valores = []; //El array en el que almacenaré los valores
  21.     for (i = 0; i < total; i++)
  22.         valores.push(emails[i].value); //Añado el valor de cada input al array
  23.  
  24.     if (valores.length) $("p").html(valores.join(", ")); //Muestro todos los valores
  25. });



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

Última edición por Alexis88; 03/05/2014 a las 00:29 Razón: Actualización y adición de comentarios
  #3 (permalink)  
Antiguo 03/05/2014, 06:21
 
Fecha de Ingreso: noviembre-2009
Mensajes: 381
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: Enviando array de inputs por ajax con json

Muchisimas gracias, se lo ve muy bueno!!!
Saludos,
Gustav.
  #4 (permalink)  
Antiguo 03/05/2014, 07:59
 
Fecha de Ingreso: noviembre-2009
Mensajes: 381
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: Enviando array de inputs por ajax con json

Aquí mi solución:

Código Javascript:
Ver original
  1. //recibo las cantidades que sean del input email
  2. //creo un array y le agrego el pipe asi me queda separado para luego leerlo con php
  3.  
  4.                 var emails = [];
  5.                 var j = 0;
  6.                 $('input[name^="email"]').each(function() {
  7.                     emails[j] = $(this).val();
  8.                     j++;
  9.                 });
  10.                 email_list = emails.join('|');

Saludos y gracias!
Gustav.

Etiquetas: ajax, enviando, inputs, json
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 08:27.