Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] consulta sobre enviar formulario para que con fpdf se convierta en pdf

Estas en el tema de consulta sobre enviar formulario para que con fpdf se convierta en pdf en el foro de PHP en Foros del Web. Hola mi pregunta es sencilla: Con un formulario que envio a un archivo php genero un documento en el que aparecen el nombre la fehca ...
  #1 (permalink)  
Antiguo 02/04/2013, 03:52
b44
 
Fecha de Ingreso: diciembre-2005
Mensajes: 142
Antigüedad: 18 años, 11 meses
Puntos: 0
consulta sobre enviar formulario para que con fpdf se convierta en pdf

Hola mi pregunta es sencilla:
Con un formulario que envio a un archivo php genero un documento en el que aparecen el nombre la fehca de emision del informe....

Ahora quiero coger este informe y apoyándome en la clase fpdf, que me devuelva un documento pdf.
¿Se puede hacer ?¿como?
  #2 (permalink)  
Antiguo 02/04/2013, 04:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

Son cosas distintas... el formulario envía los datos del cliente al servidor, una vez los tienes en el servidor puedes hacer lo que quieras con ellos ... guardarlos en una bbdd y/o retornarlos al cliente una vez formateados, el formato de retorno puede ser html o pdf o cualquier cosa que el cliente pueda leer.

Básicamente es lo mismo en todos los casos lees los datos del $_POST e intercalas etiquetas propias del lenguaje o del formato en cuestión.

Si sabes leer los datos del $_POST cualquier ejemplo de los que hay en el api de fpdf te ayudará a crear el tuyo.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 03/04/2013, 15:03
b44
 
Fecha de Ingreso: diciembre-2005
Mensajes: 142
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

Bueno soy bastante nuevo en esto y a veces puedo confundir los conceptos.
La pregunta es la siguiente:
Tengo hecho un formulario que conecta con un archivo php que devuelve unos datos de un informe.
Cuando un visitante de la pagina rellena el formulario y acepta, le devuelve un informe en formato html.
Una vez que la persona que ha enviado los datos ve correcto este informe conforme a los datos que él ha introducido y que aparece en html quiero darle la opción que pueda imprimirselo en pdf o guardarlo en este formato para visualizarlo mas tarde.
La cuestión es que no se como recoger todos los datos de este informe y guardarlos en una variable para enviarselo a fpdf.
  #4 (permalink)  
Antiguo 03/04/2013, 15:28
Avatar de stratobonta  
Fecha de Ingreso: septiembre-2011
Mensajes: 10
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

te recomiendo que en el archivo .php donde empiezes a hacer el pdf, hagas las consultas a tu base de datos, una ves tenga los datos, simplemente comienza a construir el pdf con $pdf, ahora si tus datos que ingresan no van a una base de datos, puedes pasar esos datos a traves de la url y capturarlos en el .php con GET o POST dependiendo del metodos que ocupes.
  #5 (permalink)  
Antiguo 03/04/2013, 16:01
b44
 
Fecha de Ingreso: diciembre-2005
Mensajes: 142
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

Cita:
ahora si tus datos que ingresan no van a una base de datos, puedes pasar esos datos a traves de la url y capturarlos en el .php con GET o POST dependiendo del metodos que ocupes.
No van a una base de datos y los capturo del formulario con POST.
Pero ¿ Como recojo los datos si ya los he enviado anteriormente? en cierto sentido solo cuando se unen los datos que introduzco en el formulario con el archivo php es cuando esta el informe completo, es decir cuando el informe esta creado en html. Supongo que es ahi cuando tengo que recogerlo entero y enviarlo a fpdf. pero ¿cómo?
  #6 (permalink)  
Antiguo 03/04/2013, 16:48
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

si mandas una salida html, esa misma informacion que envias como salida html debes enviar al pdf....
  #7 (permalink)  
Antiguo 04/04/2013, 01:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

Repito

Cita:
... el formato de retorno puede ser html o pdf o cualquier cosa que el cliente pueda leer.

Básicamente es lo mismo en todos los casos lees los datos del $_POST e intercalas etiquetas propias del lenguaje o del formato en cuestión.

Si sabes leer los datos del $_POST cualquier ejemplo de los que hay en el api de fpdf te ayudará a crear el tuyo.
Puedes guardar los datos recibidos por post en variables de sesion para poder recuperarlos a posteriri...

Puedes crear un formulario con campos ocultos con los datos en la salida html y mandarlos otra vez, pero de forma que el usuario no se entere...

...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #8 (permalink)  
Antiguo 04/04/2013, 01:38
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años, 7 meses
Puntos: 2
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

no te calientes la cabeza!!! usa chrome!! y olvídate de clases! te permite guardar lo que estás viendo por pantalla como pdf si le das a imprimir ;) así que solo hazte una plantilla para mostrar datos
  #9 (permalink)  
Antiguo 04/04/2013, 02:41
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

Si usa chrome tu y todos tus clientes.... gran solución.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #10 (permalink)  
Antiguo 04/04/2013, 07:45
Avatar de stratobonta  
Fecha de Ingreso: septiembre-2011
Mensajes: 10
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

como dicen anteriormente utiliza un form en tu html y envia los datos de forma "oculta" a tu archivo php

Código HTML:
Ver original
  1. <form name="form2" action="modulos/reportes/constructorpdf.php" method="POST" target="_blank" >
  2. <!-- listas tus datos a enviar-->
  3.           <input type="hidden" name="valor1" value="valor1">
  4.           <input type="hidden" name="valor2" value="valor2">
  5.           <input type="hidden" name="valor2" value="valor2">
  6. <!-- un boton que para enviar datos-->
  7.           <input type="image" src="imagenes/botones/imprimir.gif" class="input_imagen">
  8. </form>

luego solo en tu php donde comenzaras a construir tu pdf capturas los datos con

Código PHP:
Ver original
  1. $dato1 = $_POST["dato1"];

y finalmente comienzas a dar vida a tu pdf con fpdf.

espero que te ayude
  #11 (permalink)  
Antiguo 05/04/2013, 03:47
b44
 
Fecha de Ingreso: diciembre-2005
Mensajes: 142
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

Hola gracias por la ayuda pero no termino de comprender.
yo tengo un archivo html que recoge tres datos nombre, base (es una cantidad) e hijos.

Archivo esquematizado pero completo del formulario
Código:
<html>
<head>
</head>
<body>
 <form action="pensionuno.php" method="post" id="formulario">
            Nombre completo        <input name="nombre" id="nombre" value=""  type="text"><br>
            Ingresos del progenitor<input name="base" id="base" value="" type="text"><br>
            Numero de hijos        <input name="hijo" id="hijo" value="" type="text"><br> 
                                   <input value="Calculo" name="pension" id="pension" type="submit">
        </form>
</body>
</html>
El archivo phppensionuno al que envia los datos el formulario es el siguiente

Código:
<html>
<head>
</head>
<body>
<?php
//asignar al servidor horario de europa
date_default_timezone_set("Europe/Andorra");
//Fecha y hora en la que se emite el informe
echo 'Documento emitido a las: ';
echo date ('H:i:s');
echo ' del ';
//fecha en castellano
$dias = array("domingo","lunes","martes","miércoles","jueves","viernes","sábado");
$meses = array("enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre");
echo $dias[date('w')]." ".date('d')." de ".$meses[date('n')-1]. " del ".date('Y') ;
//salto de pagina
echo '. <br><br> ';
//tipos de variables usadas
$nombre = $_POST['nombre'];
$base = $_POST['base'];
$hijo = $_POST['hijo'];
$variable = 0.227;
//personalizacion del nombre
echo 'Estimado ';
echo $nombre;
echo ' estos son los datos que usted ha introducido:';
echo '<br>';
echo 'La base que ha introducido es ';
//recogida de datos base
echo $base;
echo ' euros. <br>';
echo 'Numero de hijos es ';
//recogida de datos valor numero de hijos
echo $hijo;
echo '. <br>';
//ajuste para el asignar el valor por cantidad de hijos
$cerohijo = 0;
$unohijo = 1;
$doshijo = 1.45;
$treshijo = 1.65;
$cuatrohijo = 1.93;
if ($hijo == 0)
{ $cerohijo; }
else {$cerohijo = null;}
if ($hijo == 1 )
{ $unohijo; }
else {$unohijo = null;}
if ($hijo == 2)
{ $doshijo; }
else {$doshijo = null;}
if ($hijo == 3)
{ $treshijo; }
else {$treshijo = null;}
if ($hijo >= 4)
{ $cuatrohijo; }
else {$cuatrohijo = null;}
//valor segun los datos intorducidos todos se hacen nulos excepto el valor del hijo
$hijofinal = $cerohijo+$unohijo+$doshijo+$treshijo+$cuatrohijo;
//valor pension
$pension = $base*$variable*$hijofinal;
//calculo de la pension que saldria a pagar
echo 'La pension que usted tendria que
    pagar es de ';
echo round($pension,2);
echo ' euros mensuales.';
?>
</body>
</html>
Al enviar el formulario html al de php me devuelve esta respuesta:
Código:
Documento emitido a las: 11:15:33 del viernes 05 de abril del 2013.

Estimado Antonio Manjou estos son los datos que usted ha introducido:
La base que ha introducido es 800 euros.
Numero de hijos es 2.
La pension que usted tendria que pagar es de 263.32 euros mensuales.
Este es el resultado que quiero dar la opcion de imprimir en pdf.
Como me habeis comentado y estoy seguro que estais en lo cierto tengo que enviar los mismos datos que he enviado al archivo pensionuno.php al constructor fpdf con form pero ¿en el archivo html inicial?
¿Se puede recoger en una variable los datos que ha devuelto el archivo php con la hora de emision del informe la fecha .... con un form y enviarlo al constructor fpdf ya que aqui esta completo los datos y ordenado? pero si fuera asi como los recojo en una variable si este archivo lo forma el servidor.
  #12 (permalink)  
Antiguo 05/04/2013, 05:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

phppensionuno.php
Código PHP:
Ver original
  1. <?php
  2. //Recojida de datos
  3. $nombre = $_POST['nombre'];
  4. $base = $_POST['base'];
  5. $hijo = $_POST['hijo'];
  6.  
  7. //calculo de la pension que saldria a pagar
  8. $variable = 0.227;
  9. //ajuste para el asignar el valor por cantidad de hijos
  10. $cerohijo = 0;
  11. $unohijo = 1;
  12. $doshijo = 1.45;
  13. $treshijo = 1.65;
  14. $cuatrohijo = 1.93;
  15. if ($hijo == 0)
  16. { $cerohijo; }
  17. else {$cerohijo = null;}
  18. if ($hijo == 1 )
  19. { $unohijo; }
  20. else {$unohijo = null;}
  21. if ($hijo == 2)
  22. { $doshijo; }
  23. else {$doshijo = null;}
  24. if ($hijo == 3)
  25. { $treshijo; }
  26. else {$treshijo = null;}
  27. if ($hijo >= 4)
  28. { $cuatrohijo; }
  29. else {$cuatrohijo = null;}
  30. //valor segun los datos intorducidos todos se hacen nulos excepto el valor del hijo
  31. $hijofinal = $cerohijo+$unohijo+$doshijo+$treshijo+$cuatrohijo;
  32. //valor pension
  33. $pension = $base*$variable*$hijofinal;
  34.  
  35.  
  36. //asignar al servidor horario de europa
  37. date_default_timezone_set("Europe/Andorra");
  38. //fecha en castellano
  39. $dias = array("domingo","lunes","martes","miércoles","jueves","viernes","sábado");
  40. $meses = array("enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre");
  41.  
  42. ///Inicio presentación datos en HTML
  43. ?>
  44. <html>
  45. <head>
  46. </head>
  47. <body>
  48. <?php
  49. echo 'Documento emitido a las: '.date ('H:i:s').' del '.$dias[date('w')].' '.date('d').' de '.$meses[date('n')-1]. ' del '.date('Y').'. <br><br> ';
  50. echo 'Estimado '. $nombre.' estos son los datos que usted ha introducido:<br>';
  51. echo 'La base que ha introducido es '.$base.' euros. <br>';
  52. echo 'Numero de hijos es '.$hijo.'. <br>';
  53. echo 'La pension que usted tendria que pagar es de '.round($pension,2).' euros mensuales.';
  54. ////Formulario con campos ocultos con los valores
  55.  
  56. ///El action es pensionunoPDF.php no pensionuno.php
  57. ?>
  58. <br /><br />
  59. <form action="pensionunoPDF.php" method="post" id="formulario">
  60. <input name="nombre" id="nombre" value="<?php echo $nombre;?>"  type="hidden"><br>
  61. <input name="base" id="base" value="<?php echo $base;?>" type="hidden"><br>
  62. <input name="hijo" id="hijo" value="<?php echo $hijo;?>" type="hidden"><br>
  63. <input value="Imprimir pdf" name="pension" id="pension" type="submit">
  64. </form>
  65. </body>
  66. </html>

Como ves he reorganizado phppensionuno.php y le he agregado un formulario con campos ocultos, los cuales tienen los valores del formulario original. Hace lo mismo pero de una forma mas organizada y legible, primero recoge los datos, hace los calculos, configura la hora, y luego muestra los datos y el resultado de los calculos. Finalmente de forma oculta al usuario crea un formulario con los mismos datos y ofrece la posibilidad de imprimir.

Ahora tienes que crear un pensionunoPDF.php que va a recibir los datos otra vez con lo que podrá crear el pdf. Mira los ejemplos del api de FPDF.


pensionunoPDF.php
Código PHP:
Ver original
  1. <?php
  2. ///Cargamos la libreria FPDF
  3.  
  4.  
  5. //Recojida de datos
  6. $nombre = $_POST['nombre'];
  7. $base = $_POST['base'];
  8. $hijo = $_POST['hijo'];
  9. //calculo de la pension que saldria a pagar
  10. $variable = 0.227;
  11. //ajuste para el asignar el valor por cantidad de hijos
  12. $cerohijo = 0;
  13. $unohijo = 1;
  14. $doshijo = 1.45;
  15. $treshijo = 1.65;
  16. $cuatrohijo = 1.93;
  17. if ($hijo == 0)
  18. { $cerohijo; }
  19. else {$cerohijo = null;}
  20. if ($hijo == 1 )
  21. { $unohijo; }
  22. else {$unohijo = null;}
  23. if ($hijo == 2)
  24. { $doshijo; }
  25. else {$doshijo = null;}
  26. if ($hijo == 3)
  27. { $treshijo; }
  28. else {$treshijo = null;}
  29. if ($hijo >= 4)
  30. { $cuatrohijo; }
  31. else {$cuatrohijo = null;}
  32. //valor segun los datos intorducidos todos se hacen nulos excepto el valor del hijo
  33. $hijofinal = $cerohijo+$unohijo+$doshijo+$treshijo+$cuatrohijo;
  34. //valor pension
  35. $pension = $base*$variable*$hijofinal;
  36. //asignar al servidor horario de europa
  37. date_default_timezone_set("Europe/Andorra");
  38. //fecha en castellano
  39. $dias = array("domingo","lunes","martes","miércoles","jueves","viernes","sábado");
  40. $meses = array("enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre");
  41.  
  42. ///Inicio presentación datos en PDF
  43. $pdf=new....
  44.  
  45. ....
  46.  
  47.  
  48. /// Fin presentación pdf
  49. ?>

pensionunoPDF.php hace lo mismo que su homologo HTML ... primero recoge los datos, hace los calculos, configura la hora. A partir de aqui debes crear el pdf.

Ahora lo entiendes?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 05/04/2013 a las 05:38
  #13 (permalink)  
Antiguo 08/04/2013, 04:41
b44
 
Fecha de Ingreso: diciembre-2005
Mensajes: 142
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

Muchas gracias por las respuestas y por dedicarme vuestro tiempo ya esta solucionado
  #14 (permalink)  
Antiguo 16/04/2013, 01:28
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años, 7 meses
Puntos: 2
Respuesta: consulta sobre enviar formulario para que con fpdf se convierta en pdf

creo k el firefox también te permite guardar en pdf lo que generes no???? lo k pasa es k para quitar la cabezera y el pie tienes que cambiarlo en la configuración...

Etiquetas: formulario, fpdf, pdf
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 22:20.