Ae pessoal!! tengo una preguntilla por aquí, me he pasado un buen rato mirando por google, pero solo he encontrado cosas de pdf y word... que no he encontrado la manera de aplicarlo a la web, imagino... por supuesto!! que necesitaré moverme con php, ahí va la pregunta.
Como devería hacer para crear un formulario en el que el interesado introduzca sus datos personales (nombre, apellidos, dni y dirección) y que una vez finalizado el formulario, (botón aceptar), se imprima en su pantalla un modelo de contrato que ya tengo con esos datos con los que EL ha rellenado el formulario?!?!
Mil gracias por la atención!!
y con modelo de contrato, quieres decir?
por ejemplo:
por una parte d. XXXXXXXXXXX, mayor de edad y con DNI: XXXXXXXX, residente en la calle XXXXXXXXXXX nº XXX cede a d. XXXXXXXXXXX...........
Y, obviamente, donde están las XXXXX que se pongan automaticamente los datos que ha rellenado en el formulario.
Pero eso tendría que ir en una pagina (*.php) o un archivo (.txt; .doc; .pdf).
para eso ocupa ezpdf o fpdf.
algunos ejemplos:
Usando FPDF:
Archivo: index.php
<html>
<head>
<style type="text/css">
body {
background-color: #ffffff;
background-repeat: no-repeat;
}
.style1 {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
color: #000;
}
.style20 {
font-family: Arial, Helvetica, sans-serif;
color: #C36;
font-size: 28px;
font-weight: bold;
}
.style13 {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
font-size: 18px;
color: #000;
text-align: left;
}
.style15 {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
font-size: 24px;
color: #af9454;
text-align: left;
}
.style17 {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
font-size: 17px;
color: #00C;
}
.style16 {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
font-size: 17px;
color: #F00;
}
.style14 {color: #000000}
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
a:active {
text-decoration: none;
}
a {
font-size: 14px;
}
</style>
</head>
<body>
<center>
<p><img src="logo.jpg" width="720" height="269"></p>
<p>Descargue aqui el diploma del evento </p>
</center>
<form method="POST" action="generar_diploma.php" target="_blank">
<center>
<strong>Ingrese su cédula:</strong>
<input type="text" name="T1" size="20"></center><br>
<center><input type="submit" value="Buscar" name="buscar"> </center>
</form>
<center>
Si tiene algun inconveniente favor comunicarse a: registro@tuservidor.com<br>
</center>
</body>
</html>
Archivo: generar_diploma.php
<?php
require('fpdf.php');
$buscar=$_POST['T1'];
if (!isset($buscar)){
echo "Debe especificar una cadena a bucar";
echo "</html></body> \n";
exit;
}
$link = mysql_connect("localhost", "usuario_root","tu_contraseña");
mysql_select_db("server_diplomas", $link);
$result = mysql_query("SELECT * FROM tabla_salud WHERE cedula = $buscar ORDER BY nombres", $link);
if ($row = mysql_fetch_array($result)){
$_entregado = "SI";
mysql_query("update tabla_salud set entregado='$_entregado' where cedula='$buscar'",$link);
$pdf=new FPDF();
$pdf->AddPage('P','letter');
$pdf->Image('img.jpg', 0, 0, $size[0], $size[1]);
$pdf->SetFont('Arial','B',20);
$pdf->SetTextColor(58,46,110);
$pdf->SetXY(88,110);
$pdf->Cell(40,10,$row["nombres"].' '.$row["apellidos"],0,0,'C');
$pdf->Ln();
$pdf->SetFont('Arial','B',16);
$pdf->SetXY(88,120);
$pdf->Cell(40,10,'CC '.$row["cedula"],0,0,'C');
$pdf->Ln();
$pdf->SetFont('Arial','B',16);
$pdf->SetXY(88,130);
$pdf->Cell(40,10,utf8_decode("Asistió a la Decimocuarta Semana de la Salud "),0,0,'C');
if(empty($row["tipo"])){
$pdf->Ln();
$pdf->SetFont('Arial','B',14);
$pdf->SetXY(88,140);
$pdf->Cell(40,10,utf8_decode("XXX Congreso de Salud."),0,0,'C');
$pdf->Ln();
$pdf->SetFont('Arial','B',14);
$pdf->SetXY(88,150);
$pdf->Cell(40,10,utf8_decode("9° Congreso Colombiano de Salud."),0,0,'C');
$pdf->Ln();
$pdf->SetFont('Arial','B',14);
$pdf->SetXY(88,160);
$pdf->Cell(40,10,utf8_decode("Medellín, 3, 4 y 5 de noviembre de 2010."),0,0,'C');
}else{
$pdf->Ln();
$pdf->SetFont('Arial','B',16);
$pdf->SetXY(88,140);
$pdf->Cell(40,10,$row["categoria"],0,0,'C');
$pdf->Ln();
$pdf->SetFont('Arial','B',11);
$pdf->SetXY(88,150);
$pdf->Cell(40,10,$row["tipo"],0,0,'C');
$pdf->Ln();
$pdf->SetFont('Arial','B',14);
$pdf->SetXY(88,160);
$pdf->Cell(40,10,utf8_decode("Medellín, 3, 4 y 5 de noviembre de 2010."),0,0,'C');
}
$pdf->Output();
} else {
echo "¡ No se ha encontrado ningún registro con su cedula, por favor verifique el numero e intentelo de nuevo !";
}
?>
Yeah!!!!!!!!!!! muchas gracias!!!!!!!
A mi se me ocurre generar el texto sobre la marcha, algo así:
carta.txtCitar
Esta seria la {VAR1} que quieres cambiar por la {VAR2}.
Escribe toda tu {VAR3} creando los huecos con todas las {VAR4} que necesites.
generar.php
<?php
$var1=$_POST['var1'];
$var2=$_POST['var2'];
$var3=$_POST['var3'];
$var4=$_POST['var4'];
$carta=fopen("carta.txt","r");
while(!feof($carta)) {
$linea=fgets($carta);
if(strstr($linea,"{VAR1}")) {
$linea=str_replace("{VAR1}",$var1,$linea);
}
if(strstr($linea,"{VAR2}")) {
$linea=str_replace("{VAR2}",$var2,$linea);
}
if(strstr($linea,"{VAR3}")) {
$linea=str_replace("{VAR3}",$var3,$linea);
}
if(strstr($linea,"{VAR4}")) {
$linea=str_replace("{VAR4}",$var4,$linea);
}
echo "$linea<br />";
}
fclose($carta);
?>
Si fueran muchas variables, se podria montar un for con un array para las variables... nada del otro mundo, pero se podria hacer. :P
Luego nose, si quieres el pdf bien, pero si solo es para mostrar o imprimir, con generarlo en pantalla es suficiente. no¿?
EDIT --
Faltaba el <br />, porque el fgets no copia el salto de linea.