Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/03/2019, 13:55
webtexcoco
 
Fecha de Ingreso: febrero-2016
Mensajes: 43
Antigüedad: 8 años, 2 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