PHP - ENVIAR VÍA POST TABLA HTML

 
Vista:
sin imagen de perfil
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Jonathan (40 intervenciones) el 02/03/2020 14:21:15
Hola a todos, mi consulta es la siguiente

Tengo la siguiente tabla

Captura

Necesito enviar los datos de esa tabla mediante POST, para poder generar un archivo PDF mediante MPDF, las variables de los inputs no tengo problema, pero si con la tabla.

Cualquier ayuda me serviría, de antemano gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Julio (830 intervenciones) el 02/03/2020 14:32:56
Hola.

¿Obtienes los datos de la tabla en tu código PHP? Puedes colocar luego los datos en $_POST directamente después de obtenerlos.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Jonathan (40 intervenciones) el 02/03/2020 14:38:54
Hola

Los datos los obtengo mediante Ajax, pero voy cargando varios datos a esa tabla, ya que es una tabla de ventas, entonces hasta no terminar de agregar todos los productos a esa tabla de ventas no puedo generar el PDF final.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Julio (830 intervenciones) el 02/03/2020 14:49:26
Pero el PDF, ¿lo generas dándole a algún botón de generar PDF? ¿O cómo quieres generarlo? De todas formas, creo que da igual. Conforme vayas recibiendo los datos desde AJAX deberías ir creando tu array o como quieras hacerlo para guardarlo en $_POST y enviarlo luego como formulario y que el generador de PDF lo pueda recoger.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Jonathan (40 intervenciones) el 02/03/2020 15:11:54
Si me pudieras ayudar con el array que tu mencionas, mira de la siguiente forma obtengo los datos por php, tengo un input de búsqueda y al encontrar una coincidencia me agrega las filas a la tabla ya mencionada

Codugo PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function registrar2(){
    if(!(empty($_POST['buscar']))){
        $codbarras = $_POST['buscar'];
        $sqlQuery = "SELECT codbarras,descripcion,1 as 'cantidad',precio,tipo FROM productos WHERE codbarras='$codbarras'
                     UNION ALL
                     SELECT codigo,descripcion,cantidad,precio,tipo FROM subproductos WHERE codasociado='$codbarras'";
        $datos = $this->obtenerdatos($sqlQuery);
        $nfilas = $this->numerofilas($sqlQuery);
        $HTML = array();
        for ($x = 0, $nfilas;$x<$nfilas;$x++) {
            array_push($HTML,$datos[$x]['codbarras'],$datos[$x]['descripcion'],1,$datos[$x]['precio'],$datos[$x]['precio']);
        }
    }
    return $datos;
}

Deespues con Ajax paso esos datos obtenidos a la tabla
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function datos_repetidos(){
    var action = 'fetch_data';
    var buscar = document.getElementById("busqueda").value;
    var existe = false;
    $.ajax({
        url:"ventas.php",
        method: "POST",
        dataType: "json",
        data:{ action:action,buscar:buscar},
        success:function(data){
            $(data.html3).each(function(e){
                $(".tabla_existencias tbody tr").find('td:eq(1)').each(function () {
                    var codigo = $(this).html();
                    if(codigo == data.html3[e].codbarras){
                        var trDelResultado = $(this).parent();
                        var cantidad = parseInt(trDelResultado.find("td:eq(3)").html());
                        var precio = parseInt(trDelResultado.find("td:eq(4)").html());
                        trDelResultado.find("td:eq(3)").html(cantidad+1);
                        trDelResultado.find("td:eq(5)").html((cantidad+1)*precio);
                        existe = true;
                        calcular();
                    }
                });
                if(!existe){
                    $('.listado_ventas tbody').append('<tr><td><input type="checkbox"></td><td>'+data.html3[e].codbarras+'</td><td>'+data.html3[e].descripcion+'</td><td contenteditable="true">'+data.html3[e].cantidad+'</td><td>'+data.html3[e].precio+'</td><td>'+data.html3[e].precio+'</td><td>'+data.html3[e].tipo+'</td></tr>');
                    calcular();
                }
            });
        }
    });
}

Entonces tengo esa tabla dentro de un form, con varios inputs mas, y genero el PDF de la siguiente forma

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
if(!(empty($_POST['rut'])) and !(empty($_POST['nombre'])) and !(empty($_POST['telefono'])) and !(empty($_POST['patente'])) and !(empty($_POST['marca'])) and !(empty($_POST['modelo'])) and !(empty($_POST['motor'])) and !(empty($_POST['periodo'])) and !(empty($_POST['combustible'])) and !(empty($_POST['vin']))){
	$rut = $_POST['rut'];
	$nombre = $_POST['nombre'];
	$telefono = $_POST['telefono'];
	$marca = $_POST['marca'];
	$modelo = $_POST['modelo'];
	$motor = $_POST['motor'];
	$periodo = $_POST['periodo'];
	$combustible = $_POST['combustible'];
	$patente = $_POST['patente'];
	$vin = $_POST['vin'];
	$kilometraje = $_POST['kilometraje'];
	setlocale(LC_TIME, "spanish");
	$fecha = date("y-m-d");
	$newDate = date("d-m-Y", strtotime($fecha));
	$mesDesc = strftime("%d de %B de %Y", strtotime($newDate));
	$trabajos = $_POST['trabajos'];
	$comentarios = $_POST['comentarios'];
	$orden = $_POST['orden'];
	$filas = $_POST['tabla_trabajos'];
 
	$html = '<table width="100%" style="vertical-align: bottom;">
				<tr><td width="100%" style="text-align:center"><img src="imagenes/logo-negro.png" width="300"/></td></tr>
				<tr><td width="100%" style="text-align:center"><p>General Korner #721 - Paradero 30 Gran Avenida - El Bosque</p><td><tr>
				<tr><td width="100%" style="text-align:center"><p>www.ecuservicechile.cl - [email protected].cl</p><td><tr>
				<tr><td width="100%" style="text-align:center"><p>+56 9 5728 1246 | +56 9 3214 0292</p><td><tr>
			</table>
			<table width="100%" style="vertical-align: bottom;border-bottom: 1px solid rgba(90,90,90,.9)">
				<tr>
					<td width="82%"><h1>ORDEN DE TRABAJO</h1></td>
					<td><h1>: '.$orden.'</h1></td>
				</tr>
			</table>
			<table width="100%">
				<tr>
					<td width="85%">'.$mesDesc.'</td>
				</tr>
			</table>
			<h4>DATOS DEL CLIENTE</h4>
			<table class="cliente">
				<tbody>
					<tr>
						<td><strong>NOMBRE:</strong></td><td>'.$nombre.'</td>
						<td><strong>RUT:</strong></td><td>'.$rut.'</td>
						<td><strong>TELEFONO:</strong></td><td>'.$telefono.'</td>
					</tr>
				</tbody>
			</table>
			<h4>DATOS DEL VEHICULO</h4>
			<table class="datos-vehiculo">
				<tbody>
					<tr>
						<td><strong>MARCA:</strong></td><td>'.$marca.'</td><td><strong>MODELO:</strong></td><td>'.$modelo.'</td>
					</tr>
					<tr>
						<td><strong>MOTOR:</strong></td><td>'.$motor.'</td><td><strong>AÑO:</strong></td><td>'.$periodo.'</td>
					</tr>
					<tr>
						<td><strong>COMBUSTIBLE:</strong></td><td>'.$combustible.'</td><td><strong>PATENTE:</strong></td><td>'.$patente.'</td>
					</tr>
					<tr>
						<td><strong>VIN:</strong></td><td>'.$vin.'</td><td><strong>KILOMETRAJE:</strong></td><td>22.908
						</td>
					</tr>
				</tbody>
			</table>
			<h4>DESCRIPCIÓN DEL TRABAJO</h4>
			<table class="trabajos">
				<tbody>
					<tr><td>'.nl2br($trabajos).'</td></tr>
				</tbody>
			</table>
			<h4>COMENTARIOS ADICIONALES</h4>
			<p>'.nl2br($filas).'</p>
			<p style="font-size:11px;text-align:justify; position: absolute;bottom:30px;border-top:0.5px solid rgba(0,0,0,.1); width:85%">Estimado cliente, le informamos que para los servicios que contemplen cambios de piezas eléctricas originales, la garantía es de 10 días a contar del día de la instalación, siempre y cuando están sean adquiridas a través de nosotros. Del mismo modo anterior, para piezas mecánicas la garantía es de 3 meses, al igual que los servicios de mantenciones. Servicios como DPF OFF o EGR OFF la garantía otorgada por el servicio es de 3 años siempre y cuando la falla sea adjudicada al servicio entregado. Para garantía de otros servicios, favor consultar al momento de pagar el servicio.</p>';
 
	include('MPDF/mpdf.php');
	$mpdf=new mPDF('c','A4');
	$css = file_get_contents('recursos/css/style.css');
	$mpdf->WriteHTML($css , 1);
	$mpdf->WriteHTML($html);
	$mpdf->Output('prueba.pdf','I');
	exit;
}

Si me ayudaras con ese array que tu mencionas me serviría de mucho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Julio (830 intervenciones) el 02/03/2020 15:21:12
Disculpa, me he perdido. No sé si estoy muy espeso pero, ¿ahí no estás ya generando el PDF con los datos que quieres? No sé si estoy interpretando bien tu código o dónde estás estancado, lo siento.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Jonathan (40 intervenciones) el 02/03/2020 15:27:41
Si ahí estoy generando el PDF, pero sin los datos de la tabla que sale en la foto, esos son las datos que me faltan enviar vía POST
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Julio (830 intervenciones) el 02/03/2020 15:33:46
Entiendo, no son estos datos entonces:

1
2
3
4
$rut = $_POST['rut'];
$nombre = $_POST['nombre'];
$telefono = $_POST['telefono'];
$marca = $_POST['marca'];

Etc.

Pues en el momento en que generas esos datos de la tabla, añádelos al $_POST a ver si así te funcionan:

1
$_POST['datos'] = $datos;

Justo antes del return $datos. Luego en el archivo donde recuperas los $_POST, recupera ese también y busca la fila que necesitas en cada momento. A ver si hay suerte y solo con eso te sirve.

O, si no es así, ¿dónde llamas a la función registrar2?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Jonathan (40 intervenciones) el 02/03/2020 15:37:25
Aqui queda codificada la funcion registrar2, para luego recuperar los datos via ajax

1
2
3
4
5
6
7
8
9
10
11
$existencias = new Existencias();
if(isset($_POST["action"])){
	$html2 = $existencias->prueba();
	$html3 = $existencias->registrar2();
 
	$data = array(
		"html2" => $html2,
		"html3" => $html3,
	);
	echo json_encode($data);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Julio (830 intervenciones) el 02/03/2020 21:22:31
¿Has añadido el $_POST como te he comentado? A ver si funciona así.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Jonathan (40 intervenciones) el 03/03/2020 16:39:12
Si eh puesto en el archivo ventas.php como lo dijiste quedando así
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public function registrar2(){
    if(!(empty($_POST['buscar']))){
        $codbarras = $_POST['buscar'];
        $sqlQuery = "SELECT codbarras,descripcion,1 as 'cantidad',precio,tipo FROM productos WHERE codbarras='$codbarras'
                     UNION ALL
                     SELECT codigo,descripcion,cantidad,precio,tipo FROM subproductos WHERE codasociado='$codbarras'";
        $datos = $this->obtenerdatos($sqlQuery);
        $nfilas = $this->numerofilas($sqlQuery);
        $HTML = array();
        for ($x = 0, $nfilas;$x<$nfilas;$x++) {
            array_push($HTML,$datos[$x]['codbarras'],$datos[$x]['descripcion'],1,$datos[$x]['precio'],$datos[$x]['precio']);
        }
    }
    $_POST['datos'] = $datos;
    return $datos;
}

En el archivo panel_ventas.php recupero por Ajax los datos solicitados para generar la tabla que eh adjuntado, ahora mediante un form pretendo enviar dicha tabla al archivo pdf.php recuperando los datos así pero no imprime ninguna variable.
1
$datos = $_POST['datos'];
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Julio (830 intervenciones) el 03/03/2020 16:42:41
Tienes que buscar el archivo que manda el último $_POST (el $_POST que recuperas en el archivo final) y rellenarlo con esos datos para poder recuperarlos luego.

Eso o trabajar con $_SESSION, pero para eso debes haber creado una sesión con session_start y no sé si estás trabajando con ellas. Si estás trabajando con las sesiones, puedes ponerle los datos a $_SESSION y recuperarlos luego.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ENVIAR VÍA POST TABLA HTML

Publicado por Jonathan (40 intervenciones) el 03/03/2020 16:45:56
Por eso tengo tres archivos, ventas.php, panel_ventas.php y pdf.php, ventas.php se encarga de la lógica para buscar los datos en la base de datos y luego mediante ajax recuperarlos en el archivo panel_ventas.php el cual muestra los datos en una tabla, para luego enviar desde el archivo panel_ventas.php al archivo pdf.php y generar el PDF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar