Formulario autorrellenable?

Iniciado por guiri86, 12 Enero 2011, 00:41 AM

0 Miembros y 1 Visitante están viendo este tema.

guiri86

    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!!

Shell Root

y con modelo de contrato, quieres decir?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

guiri86

por ejemplo:

por una parte d. XXXXXXXXXXX, mayor de edad y con DNI: XXXXXXXX, residente en la calle XXXXXXXXXXX XXX cede a d. XXXXXXXXXXX...........

Y, obviamente, donde están las XXXXX que se pongan automaticamente los datos que ha rellenado en el formulario.

Shell Root

Pero eso tendría que ir en una pagina (*.php) o un archivo (.txt; .doc; .pdf).
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Graphixx

para eso ocupa ezpdf o fpdf.

algunos ejemplos:
Usando FPDF:
Archivo: index.php
Código (php) [Seleccionar]

<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&eacute;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
Código (php) [Seleccionar]

<?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'00$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 !";

}
?>


Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

guiri86

Yeah!!!!!!!!!!! muchas gracias!!!!!!!

sclub

#6
A mi se me ocurre generar el texto sobre la marcha, algo así:

carta.txt
Citar
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
Código (php) [Seleccionar]

<?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.
... because making UNIX friendly is easier than debugging Windows.