Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/01/2018, 22:18
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: de tabla HTML a PHP

Como bien dices, estás almacenando a las filas y los datos contenidos en ellas. Sin embargo, lo conveniente sería que leas el contenido de las celdas que integran a cada fila. Por otro lado, por una cuestión de orden y facilidad en la manipulación de los datos obtenidos, sería muy útil que almacenes dichos datos en objetos literales, mismos que almacenarías en el arreglo que finalmente enviarías al archivo PHP que los vaya a procesar. Si deseas que todo el proceso se realice sin recargar la página, necesitarás utilizar una petición asíncrona. Para enviar el arreglo, puedes parsearlo a JSON usando el método JSON.stringify() y decodificarlo en PHP con la función json_decode().

Código Javascript:
Ver original
  1. var data = [], objeto, celdas;
  2.  
  3. [].forEach.call(tabla.querySelectorAll("tr"), function(tr){
  4.     celdas = tr.querySelectorAll("td");
  5.     objeto = {
  6.         valor1: celdas[0].innerHTML,
  7.         valor2: celdas[1].innerHTML,
  8.         valor3: celdas[2].innerHTML
  9.     };
  10.     data.push(obj);
  11. });
  12.  
  13. //...
  14.  
  15. var ajax = new XMLHttpRequest();
  16.  
  17. ajax.open("POST", "ejemplo.php");
  18. ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  19. ajax.send("data=" + JSON.stringify(data));

Código PHP:
Ver original
  1. $data = json_decode($_POST['data']);
  2.  
  3. foreach ($data as $object){
  4.     echo $object->valor1; //El valor de la primera celda de la fila actual en el bucle
  5.     echo $object->valor2; //El valor de la segunda celda de la fila actual en el bucle
  6.     echo $object->valor3; //El valor de la tercera celda de la fila actual en el bucle
  7. }

Y si quisieras reutilizar el código para tablas con filas de mayor, menor o igual cantidad de celdas:

Código Javascript:
Ver original
  1. [].forEach.call(tabla.querySelectorAll("tr"), function(tr){
  2.     objeto = {}, i = 0;
  3.     [].forEach.call(tr.querySelectorAll("td"), function(td){
  4.         objeto["valor" + (++i)] = td.innerHTML;
  5.     });
  6.     data.push(obj);
  7. });

Código PHP:
Ver original
  1. $data = json_decode($_POST['data']);
  2.  
  3. foreach ($data as $object){
  4.     foreach ($object as $value){
  5.         echo $value;
  6.     }
  7. }

__________________
«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; 24/01/2018 a las 00:04 Razón: Mejora