Foros del Web » Programando para Internet » Javascript »

FormData no envia inputs ni valores de formulario

Estas en el tema de FormData no envia inputs ni valores de formulario en el foro de Javascript en Foros del Web. hola ojala puedan orientarme un poco. Tengo bucle while que obtiene registro de una BD (nombre y apellido) Los muestro en una tabla con tres ...
  #1 (permalink)  
Antiguo 15/03/2019, 13:55
 
Fecha de Ingreso: febrero-2016
Mensajes: 39
Antigüedad: 3 años, 4 meses
Puntos: 2
FormData no envia inputs ni valores de formulario

hola ojala puedan orientarme un poco.

Tengo bucle while que obtiene registro de una BD (nombre y apellido)

Los muestro en una tabla con tres columnas nombre, apellido y botón de editar

En el botón de editar tengo un modal box que al momento de darle clic me abre un modal con el formulario con el nombre y apellido a editar

cada form tiene un id único por ejemplo form1, form2, etc... (el num es el id de cada registro) valor que obtengo por jquery para especificar que formulario se selecciono,

cuando quiero enviar los datos capturados la respuesta que obtengo por medio de ajax a través del archivo php que procesa todo es un array vació, ni siquiera se envían los nombre de los campos por post

a grandes rasgos este es mi código

pagina clientes.php
Código PHP:
Ver original
  1. while($c_t = mysqli_fetch_array($consulta_tabla)){
  2.     echo "
  3.         <tr align=\"center\" data-id=\"".$c_t['id']."\">
  4.             <td>".$c_t['id']."</td>
  5.             <td>".$c_t['nombre']."</td>
  6.             <td>".$c_t['apellido']."</td>
  7.             <td>";
  8.             include 'form.php';
  9.     echo "
  10.                 <a href=\"javascript:;\" class=\"edit-reg\" onclick=\"abrir_modal('caja".$c_t['id']."','boton".$c_t['id']."','close".$c_t['id']."','load".$c_t['id']."')\" id=\"boton".$c_t['id']."\">btn</a>
  11.             </td>
  12.         </tr>
  13.     ";
  14. }

form.php
Código PHP:
Ver original
  1. <!-- demás código modal -->
  2. <form class=\"formulario\" id=\"envia".$c_t['id']."\" enctype=\"multipart/form-data\" method=\"post\" >
  3.     <input type=\"text\" name=\"nombre\" id=\"nombre".$c_t['id']."\" placeholder=\"nombre...\">
  4.     <input type=\"text\" name=\"apellido\" id=\"apellido".$c_t['id']."\" placeholder=\"apellido...\">
  5.     <input type=\"file\" name=\"archivo\" id=\"archivo".$c_t['id']."\" required>
  6.     <input type=\"submit\"><span id=\"load".$c_t['id']."\"></span>
  7. </form>
  8. <!-- demás código modal -->

ajax.js

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $(document).on("click", ".edit-reg", function (){
  3.  
  4.         var element = $(this)[0].parentElement.parentElement;//con esta linea accedo al tr correspondiente
  5.         var id = $(element).attr('data-id');//con esta linea accedo al valor del atributo data-id que es el id de cada registro
  6.  
  7.         var formulario = "#envia"+id;// obtengo el nombre del formulario elegido concatenando el id correspondiente
  8.         //console .log(formulario); haciendo pruebas si obtengo el nombre del formulario
  9.         $(formulario).submit(function(e){
  10.  
  11.             e.preventDefault();
  12.             var datos = new FormData(formulario);
  13.             $.ajax({
  14.                 url: 'insert.php',
  15.                 method: 'post',
  16.                 dataType: 'html',
  17.                 cache: false,
  18.                 data: datos,
  19.                 contentType: false,
  20.                 processData: false,
  21.                 success: function(res){
  22.                     console.log(res);
  23.                 }
  24.             });
  25.  
  26.         });
  27.  
  28.     });
  29. });

insert.php
solor tengo un
Código PHP:
Ver original
  1. print(".print_r($_POST, true).");
pero la respuesta de el post es vació, ni los nombres de los campos se envían

que puede estar pasando?

cabe mencionar que hice pruebas con este mismo ejemplo pero sin meterlo en el array php (es decir con un solo form con un único id) y funciona se envían los datos

cualquier ayuda que me puedan dar se los agradeceré enormemente ya que ya me bloquee y no encuentro donde está mi fallo
  #2 (permalink)  
Antiguo 15/03/2019, 14:59
 
Fecha de Ingreso: febrero-2016
Mensajes: 39
Antigüedad: 3 años, 4 meses
Puntos: 2
Respuesta: FormData no envia inputs ni valores de formulario

bueno ya consegui resolver, lo que me hacia falta era seleccionar el formulario con una nueva variable y esa variable pasarla al formData algo asi

Código Javascript:
Ver original
  1. var f = "envia"+id;
  2. var formu = document.getElementById(f);
  3. var datos = new FormData(formu);

el único detalle es que me enviar dos veces el array post, como si hubiera presionado dos veces seguidas el submit, alguien sabe a que se debe??

por ejemplo si hago un console.log de formu me aparece el formulario dos veces, adjunto imagen


Última edición por webtexcoco; 15/03/2019 a las 15:19



La zona horaria es GMT -6. Ahora son las 06:11.