Foros del Web » Programando para Internet » PHP »

Enviar, Imprimir, Guardar. Es correcto?

Estas en el tema de Enviar, Imprimir, Guardar. Es correcto? en el foro de PHP en Foros del Web. Hola, Tengo, un formulario en el que los campos se rellenan a través de una consulta SQL y que permite que se modifiquen esos datos ...
  #1 (permalink)  
Antiguo 09/03/2008, 07:58
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Enviar, Imprimir, Guardar. Es correcto?

Hola,

Tengo, un formulario en el que los campos se rellenan a través de una consulta SQL y que permite que se modifiquen esos datos para luego volverlos a guardar.
Me gustaría que aparte de guardar también se puediera imprimir ese formulario, para ello voy a usar la clase fpdf.
Entonces, he pensando que podia tener 3 botones, "cancelar", "imprimir" y "guardar". En el momento de imprimir, querría que fuera a la pagina, por ejemplo: imprimir.php?id=$id; pero como hago para redirigirlo a esa pagina?? Primero había pensado en un botón normal y un link, pero no recibía los datos, asi que luego he creado un boton de tipo Submit y en el link ademas pasarle una variable a la misma pagina que guarda los datos (altadocument.php?accion=imprimir) y ahi mirar si la variable accion esta creada...

Todo esto para preguntaros si esto es correcto hacerlo o como lo haríais vosotros.

Código:
<form action="altadocument.php" method="post">
   [Campos del formulario...]
  <tr>
    <td><input type="button" name="cancelar" value="Cancel&middot;lar" onClick="history.back()"></td>
    <td><input type="submit" name="Submit2" value="Imprimir" onClick="location.href='altadocument.php?accio=imprimir'"></td>
    <td><input type="submit" name="Submit" value="Enviar"></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</form>
  #2 (permalink)  
Antiguo 09/03/2008, 08:08
 
Fecha de Ingreso: agosto-2004
Ubicación: Lugo
Mensajes: 15
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Enviar, Imprimir, Guardar. Es correcto?

no entiendo muy bien tu pregunta, que es lo que quieres hacer que al pulsar en imprimir te envie a la pagina de imprimir documento??

Yo te aconsejaria que utilizarás imprimir.php?id=$id; con un link normal y corriente te vale para pasarle la variable y asi poder imprimir
  #3 (permalink)  
Antiguo 09/03/2008, 08:26
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Enviar, Imprimir, Guardar. Es correcto?

Hola,
Yo queria usar un botón de Imprimir. Lo que pasa que ademas de imprimir también tiene que guardar los datos, que eso es lo que hace cuando le doy al botón de "Enviar" si se ha modificado algo en el formulario, q es lo que hago en altadocument.php (el action del form)

en pseudocodigo seria algo asi:

if (isset($_GET['accion'])){
imprimir;
}

guardar_datosBD();

simplemente querría saber si es correcto tener dos "submits" y en uno de ellos añadirle una variable q me indique que tengo que imprimir...
  #4 (permalink)  
Antiguo 09/03/2008, 08:40
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Re: Enviar, Imprimir, Guardar. Es correcto?

si, ten un submit que te apute a una pagina de guardar solo el la BD

y el otro submit, el de imprimir, que apunte a otra pagina donde guardas en la BD y despues imprime.

no se si te orienta algo
  #5 (permalink)  
Antiguo 09/03/2008, 09:00
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Enviar, Imprimir, Guardar. Es correcto?

Hola creo ke tengo lo ke necesitas...

Trabaje con algo similar... Muestro los resultados con los datos devueltos despues de una Busqueda... en ese Form1 resultado cuento con un "Modificar", "Imprimir" entre otros.

Si el usuario desea modificar el Form1 con los resultados daria click en "Modificar" y lo envio a otro Form2 donde hara los cambios y click en "Guardar" regresando denuevo a Form1 donde puedo Imprimirlo

Si el usuario desea imprimir el Form1 con los datos ya modificados al darle click en "Imprimir" y lo envio a un Form3 (este Form3 le quiito las imagenes, botones,.... ) y se imprime..

Dejame buscar esto que te escribo y publicarlo aqui te parece .....claro si es que lo que te comento es mas o menos lo que buscas saludos
  #6 (permalink)  
Antiguo 09/03/2008, 09:02
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Re: Enviar, Imprimir, Guardar. Es correcto?

o puedes tener un segundo form con campos ocultos y haces que se llamen igual que los campos que son visibles, les pasas el valor que tengan los campos visibles a los que no se ven y los campos que no se ven son del form imorimir, domde imprimes e imtroduces a la base de datos
  #7 (permalink)  
Antiguo 09/03/2008, 11:09
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Enviar, Imprimir, Guardar. Es correcto?

Buenas, os explico un poquino más como lo tengo.
Cuando quiero consultar un documento, relleno un formulario de consulta, se hace la busqueda y se presenta un listado con los resultados. Luego, clicando sobre el identificador que quieran te manda a otra pagina donde muestran los datos de ese documento. Es aqui donde, si quieres, se pueden modificar los datos y imprimirlos, o imprimir tal cual estan, de todas todas se tendran que volver a guardar los datos modificados en otra pagina.

Enishy si pones lo que hiciste quiza pueda sacar alguan buena idea. Gracias a todos!
  #8 (permalink)  
Antiguo 09/03/2008, 11:48
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Enviar, Imprimir, Guardar. Es correcto?

Hola Eliza es muy similar lo que necesitas a lo que hice hace un tiempo publicare mi codigo .... vuelve el LUNES por la mañana (Hora Peruana pues veo que eres de España) a revisar tu tema y tendre publicado mi codigo aqui ...saludos y hasta mañana
  #9 (permalink)  
Antiguo 09/03/2008, 11:52
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 2 meses
Puntos: 4
Re: Enviar, Imprimir, Guardar. Es correcto?

bueno para imprimir es
<a href='javascript:window.print()'>IMPRIMIR</a>
__________________
*La amistad se multiplica cuando se divide*
  #10 (permalink)  
Antiguo 09/03/2008, 17:31
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Enviar, Imprimir, Guardar. Es correcto?

Hola como t dije aqui esta el codigo que utilizo:

Form_Buscar.html
Formulario que esta enlazado a ShowFC_Oseo.php mediante el ACTION envio el "regcampo" este formulario me permitira saber si el registro a ingresar a la BD existe
Código HTML:
<table width="600" border="0" cellpadding="3" cellspacing="1" align="center"> 
<form method="POST" action="ShowFC_Oseo.php"> 
<tr>
<td colspan=2><p><strong>Registro de Excavaci&oacute;n :</strong> 
<input type="TEXT" name="regcampo" size="30" style="border: 1px solid #7F9DB7;">
<input type="submit" value="Buscar Ficha Campo" name="enviar">
<p>(Por eje. S/R1-C:2)</p></td>
</tr> 
</form> 
</table> 
ShowFC_Oseo.php
Presta atencion aqui, pues trabajo con sesiones ya que necesito pasar esta variable regcampo a traves de varios formularios, sigamos capturo el valor regcampo y lo asigno mediante $_POST[ ] a la variable $registro luego pasa por un depurado de espacios en blanco... lo asocio a la variable $buscar y realizo la consulta busqueda.

otra cosa mas en este archivo ShowFC_Oseo.php realizo la busqueda y muestro el resultado (si es que hay coinsidencias en la busqueda) todo al mismo tiempo mostrando tambien las opciones de MODIFICAR, IMPRIMIR entre otras SI NO hay coinsidencia entra en accion el formulario ResultFC_Oseo.php este me permitira crear una Nueva Ficha Campo

Código PHP:
<?php
session_start
();/*inicializo una sesion*/
$registro=$_POST["regcampo"]; 
$buscar str_replace(" ","%",$registro);/*aqui quito espacios en blanco con str_replace y el resultado lo almaceno en $buscar*/
$sql "SELECT * FROM ficha_campo WHERE registro_campo LIKE '%$buscar%' "
$statmysql_query($sql,$link) or die ("No existe coinsidencia en la busqueda");/*aqui $link es mi variable de conexion*/
$_SESSION['regcampo']=$buscar/*ahora $buscar es una variable de sesion*/
if(mysql_num_rows($stat)!=0){/*Si existe el elemento a buscar entonces Muestra Ficha_Campo Si NO Muestra Formulario ResultFC_Oseo*/
echo $buscar;
/*AQUI tu codigo en el que condicionas el resultado a mostrar*/
$sql="SELECT...FROM...
WHERE registro_campo = '$buscar' "
;/*registro_campo es un campo de mi tabla donde realizo la busqueda y la variable $buscar contiene el valor pasado a traves del formulario Form_Buscar.html*/
$query_fix=mysql_query($sql_fix) or die ("Error SQL Mostrar Ficha Campo Oseo");
$data_fix=mysql_fetch_array($query_fix);/*$data_fix ahora es una variable array el cual utilizo para mostrar los resultados x ejemplo*/
echo"
.
.
.
<tr>
<td><strong>Registro de Excavacion</strong></td>
</tr>
<tr> 
<td><input disabled type='text' style='border: 1px solid #7F9DB7;' size='44' value='$data_fix[registro_campo]' /></td>
</tr>
.
.
.
<table width='290' border='0' cellpadding='0' cellspacing='0' >
<tr>
<td align='right'>
<table width='260' border='1' cellpadding='0' cellspacing='0'>
<tr align='center' valign='top'>

<td width='84' height='65'> 
<a href='UpdateFC_Oseo.php?id=$buscar'><img src='images/editact.jpg' width='53' height='60' border='0' title='Edita Ficha Campo'></a> <br>

<a href='UpdateFC_Oseo.php?id=$buscar' class='iconlinks'><strong>Edita Ficha Campo</strong></a></td>

<td width='84' height='65'> 
<a href='ViewFC_Oseo.php'><img src='images/print.jpg' width='53' height='60' border='0' title='Imprimir Ficha Campo'></a> <br>

<a href='ViewFC_Oseo.php' class='iconlinks'><strong>Vista de Impresi&oacute;n</strong></a> 
</td>
</tr>
</table>
"
;
}
else{
include(
"ResultFC_Oseo.php");
}
?>
UpdateFC_Oseo.php fijate en esta linea que esta en ShowFC_Oseo.php

Código HTML:
<a href='UpdateFC_Oseo.php?id=$buscar'> 
aqui al darle click en la imagen de Modificar que se encuentra en ShowFC_Oseo.php le paso la variable de sesion "$buscar" y hago lo siguiente
Código PHP:
<?php
session_start
();
$var$_SESSION['regcampo'];
if(!isset(
$accion)){
$sql_fix="SELECT...FROM...
WHERE registro_campo = '$var' "
;
$query_fix=mysql_query($sql_fix) or die ("Error SQL Mostrar Ficha Campo Oseo");
$data_fix=mysql_fetch_array($query_fix);
echo
"
<form action='UpdateFC_Oseo.php?accion=actualizar' method='POST'>/*OJO se esta llamando a el mismo*/
.
.
.
echo"
.
.
.
<
tr>
<
td><strong>Registro de Excavacion</strong></td>
</
tr>
<
tr
<
td><input disabled type='text' style='border: 1px solid #7F9DB7;' size='44' value='$data_fix[registro_campo]' /></td>
</
tr>
.
.
.
<
tr>
<
td><strong>Registro de Excavacion</strong></td>
</
tr>
<
tr
<
td><input type='text' style='border: 1px solid #7F9DB7;' size='44' value='$data_fix[registro_campo]' /></td>
</
tr>
.
.
.
<
tr>
<
td><input name='guardar' type='image' src='images/device_floppy_unmount.png' width='32' height='32' border='0' title='Actualizar Ficha Campo'></td>
</
tr>";
}
elseif($accion==actualizar){
$result=mysql_query("
UPDATE...SET...
WHERE registro_campo='$var' ");
include("
ViewerFC_Oseo.php"); /*este es el formulario que se imprimira "vista previa"*/
?>
ViewerFC_Oseo.php Este Formulario lo empece en un comienzo con <a href="javascript:window.print()"> pero hay otra forma ..al menos me parece mejor

Mi formulario ViewerFC_Oseo.php aparece sin botones listo para imprimir luego me dirigo a las opciones de la barra de navegador Archivo-> Vista Preliminar al darle click aqui te genera una vista preliminar donde puedes configurar la hoja antes de imprimir y listo

Código PHP:
session_start();
$var=$_SESSION['regcampo'];
$sql_fix="SELECT...FROM...
WHERE registro_campo = '$var' "

$query_fix=mysql_query($sql_fix) or die ("Error SQL Mostrar Ficha Campo Oseo");
$data_fix=mysql_fetch_array($query_fix);
.
.
.
echo
"
.
.
.
<tr>
<td><strong>Registro de Excavacion</strong></td>
</tr>
<tr> 
<td><input disabled type='text' style='border: 1px solid #7F9DB7;' size='44' value='$data_fix[registro_campo]' /></td>
</tr>
.
.
.
"

ResultFC_Oseo.php Si en la busqueda no se encontro ninguna coinsidencia entonces se ingresa a la BD una nueva Ficha_Campo
Código PHP:
<?php 
session_start
();
$var=$_SESSION['regcampo']; /*como regcampo es una variable de sesion lo puedo usar en cualquier formulario en este caso lo uso a traves de la variable $var*/
echo $var/*si gustas lo muestras para que veas que si es pasada*/
?>
<table border=0 width="600" cellpadding=3 cellspacing=0 align="center"> 
<tr>
<td width="600" colspan=2>
<table border=0 cellspacing=0 cellpadding="0" width="600">
<tr>
<td class="navbar" width="280"><p><img src="images/Informacion.jpg" width="30" height="30" align="absmiddle">No se encontro ningun registro con codigo :</td>
<td class="navbaron" width="320" align="left"><?php echo $var?></td>
</tr>
<tr>
<td class="navbar">Por favor registre primero la Ficha de Campo</td> 
</tr>
</table><br />
<table width="600" border="0" cellpadding="3" cellspacing="1" align="center"> 
<tr align="center">                                
<td width="84" height="65"> <a href="NewFC_Oseo.php"><img src="images/contract.gif" width="48" height="48" border="0" title="Nueva Ficha de Campo"></a><br>
<a href="NewFC_Oseo.php" class="iconlinks"><strong>Nueva Ficha de Campo Osea</strong></a>                                                
</td>
</tr>
</table><br/>
</td>
</tr>
</table>
NewFC_Oseo.php Bueno este Formulario aparece para ingresar un nuevo registro a la BD habiendo pasado por la busqueda.... ya mencionada... una vez que se guarden los datos a la BD me arroja un formulario con estos datos:
  • Nueva Ficha Campo
  • Vista de Impresion
  • Home
  #11 (permalink)  
Antiguo 10/03/2008, 06:57
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Enviar, Imprimir, Guardar. Es correcto?

Gracias Enishy! que currada... a ver si consigo sacar alguna idea... y me aclaro un poco...

pero yo ya parto de esto:

1. Se hace la consulta.
2. Muestra los resultados, si no hay resultados se vuelve al menú principal.
3. El usuario selecciona el registro que quiere modificar.
4. Se muestran los datos de ese registro.
5. Modifica lo que quiera.
Y aqui es donde hay una bifurcación:

5a. Puede imprimir todo el formulario con los datos q ha modificado (y posteriormente se guardan)
5b. Puede darle al boton de "Enviar" y se guardan los datos.

Quiero especificar que voy a usar fpdf para imprimir.

Problemas que me surgen,
1. Si utilizo un boton de tipo "submit"
Código HTML:
 <td><input type="submit" name="imprimir" value="Imprimir" onClick="location.href='moddocument.php?accion=imprimir'"</td>
    <td><input type="submit" name="Submit" value="Enviar"></td> 
me dirige a la pagina que tengo en el "action" del form, en este caso "moddocument.php" pero no le añade el ?accion=imprimir.

2. Si utilizo un boton normal (button)

<td><input type="button" name="imprimir" value="Imprimir" onClick="location.href='moddocument.php?accion=imp rimir'"></td>

si que dirije a esa pagina, pero los datos del formulario no llegan (post)


3. Si utilizo un link a la misma pagina pasa lo mismo q en el caso 2.

Entonces... he pensado que podia o: pasar las variables mediante GET (que no me gusta mucho) o guardarlas en una variable de SESSION pero el formulario tiene unos 22 campos :D y no sé que es mejor.
  #12 (permalink)  
Antiguo 10/03/2008, 10:47
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Enviar, Imprimir, Guardar. Es correcto?

Ummmm hola ... lei que usas fpdf para imprimir....pues buscare que es eso

En la parte que haces:

Cita:
1. Si utilizo un boton de tipo "submit"
Código HTML:

<td><input type="submit" name="imprimir" value="Imprimir" onClick="location.href='moddocument.php?accion=imp rimir'"</td>
<td><input type="submit" name="Submit" value="Enviar"></td>

me dirige a la pagina que tengo en el "action" del form, en este caso "moddocument.php" pero no le añade el ?accion=imprimir.
moddocument.php?accion=imprimir estas pasando valores por URL es lo que yo hago en UpdateFC_Oseo.php fijate en la parte de
Código HTML:
if(!isset($accion)){ 
...
<form action='UpdateFC_Oseo.php?accion=actualizar' method='POST'>
...
}elseif($accion==actualizar){
...
}
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 21:14.