Foros del Web » Programando para Internet » PHP »

¿Retornar sin que se pierdan los datos antes ingresados?

Estas en el tema de ¿Retornar sin que se pierdan los datos antes ingresados? en el foro de PHP en Foros del Web. Hola a todos, luego de una gran ausencia, retorno con esta consulta gentita del Foro... Me encuentro en un proyecto el cual esta en PHP ...
  #1 (permalink)  
Antiguo 21/09/2008, 12:40
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
¿Retornar sin que se pierdan los datos antes ingresados?

Hola a todos, luego de una gran ausencia, retorno con esta consulta gentita del Foro...

Me encuentro en un proyecto el cual esta en PHP + MySQL uso el Appserv 2.59 y Win XP.

La pregunta es esta:

¿Como retorno al Form, donde originalmente ingrese unos datos previos, pero sin que estos se pierdan al regresar?... Haber si nos entendemos:

Existe un FormA y FormB (son Formularios diferentes en donde FormA a travez de un enlace se accede al FormB...... El FormA ya llenado totalmente se precede a Insert en la BD) digamos asi:

>>>FormA se ingresaran texto
>>>FormB se ingresara imagen

En donde se aclara lo sgte:Por razones de funcionalidad necesito tenerlos dos formularios diferentes uno accede al otro usando un enlace ya llenado precedo a Ingresar todo (la imagen y texto) a la BD

Ahora imginen este escenario:

EL Usuario comienza llenando el formulario, que por cierto son bastantes datos para llenar, y luego al llegar a la parte de ingresar la Imagen clickea para ingresar al Form.... inserta la Imagen, se le pide que verifique que la imagen es la que desea, si no la puede eliminar y escoger otra, AQUI EL PROBLEMA ..ohhhh sorpresa al regresar al Formulario pues la imagen ya aparece en el Form pero los datos antes ingresados desaparecieron en donde no queda de otra que volver ingresar otra vez todo el texto y queda de experiencia al el Usuario que 1ero ingresara la imagen y despues el texto y recien podra hacer el GUARDAR en la BD pues no lo hara mientras no esten ambas cosas (texto e imagen)....... pero no debe de ser asi verdad ..... si los datos ya fueron ingresados al retornar del otro formulario alli deben de estar, que puedo hacer

Última edición por Enishy; 22/09/2008 a las 12:07
  #2 (permalink)  
Antiguo 21/09/2008, 12:49
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: ¿Retornar sin que se pierdan los datos antes ingresados?

Usa sessiones.

Guarda los datos en una SESSION y en el value del campo pon:

<input type="text" name="name" value="<?php if(isset($_SESSION['valor'])) { echo $_SESSION['valor']; } ?>" />
  #3 (permalink)  
Antiguo 22/09/2008, 12:25
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: ¿Retornar sin que se pierdan los datos antes ingresados?

Creo que no esta claro, perdon, perdon....

Ronruby e editado mi pregunta pues olvide poner que este paso de valores entre ambos Formularios es solo un previo para poder INSERTAR en la BD, es decir, FormA es el que contiene todos los valores incluyendo la imagen ya insertada en el formulario para luego realizar el INSERT en la BD
  #4 (permalink)  
Antiguo 22/09/2008, 13:07
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: ¿Retornar sin que se pierdan los datos antes ingresados?

Cita:
si los datos ya fueron ingresados al retornar del otro formulario alli deben de estar
No del todo. Eso depende si tu lo programaste bien.
El formulario no va a tomar los datos que tenia previamente escritos a menos que uses el boton BACK de tu navegador.
Pero si quieres que te aparezcan, tienes que imprimir el valor del form a el value del formulario.
Lo que tienes que hacer es, bien ... el usuario llena el formulario y hace clic a un boton para ingresar la imagen.
Asegurate de que el boton haga un submit, cuando valla a la parte de la imagen, entonces inicias una session con session_start() y guardas las variables de formulario en una sesion (Puedes usar el mismo nombre si deseas).

Código PHP:
session_start();
if(isset(
$_POST['enviar'])){
$_SESSION['campo'] = $_POST['campo'];

Procesas la imagen, y cuando hagan clic de nuevo para volver a el formulario en el value de los INPUT pones:
<input type="text" name="name" value="<?php if(isset($_SESSION['valor'])) { echo $_SESSION['valor']; } ?>" />

Basicamente lo que dice es: Si la variable de SESSION valor esta seteada, imprimela en el valor de este campo.

Una pregunta ... ¿Porque no hacer que el usuario elija la imagen en el mismo formulario donde agrega los datos?
  #5 (permalink)  
Antiguo 22/09/2008, 22:18
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: ¿Retornar sin que se pierdan los datos antes ingresados?

Hola Ronruby, gracias por responderme, probare lo que me sugieres y te cuento como resulto con tu pegunta: El FormB le permite al Usuario

>> Seleciconar la Imagen
>> Muestra la imagen en una miniatura con dos opcciones (Retornar al FormA o Eliminar la Imagen)
>> SI la Imagen es la que el Usuario desea pues regresara al FormA y termina de llenar los demas campo para recien hacer INSERT ala BD
  #6 (permalink)  
Antiguo 23/09/2008, 12:12
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: ¿Retornar sin que se pierdan los datos antes ingresados?

HOla decidi poner los formularios con los que trabajo y asi ven alo que me refiero con respecto a mi duda, problema, .....espero sus sugerencias

Aclaro que el codigo utilizado para Insertar Imagen lo tome de Cluster el cual explica Insercion, Vista y Mostrar y funciona muy bien.

FormA Contiene los campos a llenar..... ojo son varios, esta a la IZQ y la parte de ingresar la Imagen esta a la DER, el Usuario comienza a llenarlos hasta llegar a la parte de ingresar la Imagen en donde hay un enlace que llama al FormB.

notece que aparece una llamada a view.php y view_thumbnail.php (Tomado del codigo de Cluster) el cual me permite mostrar una miniatura de la imagen y acceder a su tamaño real de la Imagen a travez de un Popup..... el codigo esta en el Tema hecho por Cluster

Código PHP:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="Insertar_Pieza.php">
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
        <td>
        <table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
            <td style="padding-bottom: 6px; padding-top: 12px; " align="right"><strong>Nombre Pieza:</strong></td>
            <td align="left"><input name="ctxfunerario" type="text" size="24" style="border: 1px solid #7F9DB7;"></td>
        </tr>
        <tr>
            <td style="padding-bottom: 6px; padding-top: 12px; " align="right"><strong>Tamaño Pieza:</strong></td>
            <td align="left"><input name="ctxfunerario" type="text" size="24" style="border: 1px solid #7F9DB7;"></td>
        </tr>
        <tr>
            <td></td>
            <td><input value="Registra Pieza" type="submit"></td>
        </tr>
        </table>  
        </td>
        <td>
        <table width="300" border="0" cellpadding="0" cellspacing="0">
        <tr> 
            <td align="center"> <a href="#" onClick="popUpWindow('view.php?codigo_imagen=<?php echo $img0?>', 10, 10, 800, 600)"> 
            <img src="view_thumbnail.php?codigo_imagen=<?php echo $img0?>" border="0" /></a> 
            </td>
            <td>.::Ingrese Imagen::.<a href="FormB.html"><img src="../../images/device_camera.png" width="32" height="32" border="0" align="absmiddle" title="Nueva Foto"></a></td>
        </tr>
        </table>
        </td>
    </tr>
</table>
</form>
</body>
</html>

FormB Desde FormA se accede a FormB donde se Insertara una Imagen...(Insert_Pieza.php)

Código HTML:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<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="100%">
		<tr>
        	<td class="navbaron"><img src="../../images/device_camera.png" width="32" height="32" align="absmiddle">Selecciona Imagen a Insertar</td> 
		</tr>
		</table><br />
	
		<table width="600" border="0" cellpadding="3" cellspacing="1" align="center"> 
 		<FORM enctype="multipart/form-data" method="post" action="Insert_Pieza.php">
 		<tr>
			<td colspan=2><p><strong>Imagen:</strong> 
        	<input type="file" name="archivo" size="30" style="border: 1px solid #7F9DB7;">
        	<input type="submit" value="Subir Imagen" name="enviar">
        	</td>
		</tr> 
		</form> 
		</table><br/>
	</td>
</tr>
</table>
</body>
</html> 
Insert_Image Contiene el codigo php con el que se insertara la Imagen a la BD y se hace referencia a View_Image.php

//aqui codigo php para insertar imagen a la BD
.
.
.
header("location: View_Image.php");

View_Image Contiene la imagen ya ingresada a la BD y sirve para MOSTRAR al Usuario que esa es la Imagen que se insertara en el FormA, si la imagen es la deseada entonces se regresara a FormA, si no se elimina la Imagen y se selecciona otra

Código PHP:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<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="100%">
            <tr>
                <td class="navbaron"><img src="../../images/app_ksnapshot.png" width="32" height="32" align="absmiddle">Imagen Seleccionada</td> 
            </tr>
        </table><br />
        <table width="600" border="0" cellpadding="3" cellspacing="1" align="center">
            <tr>
                <td><strong>Esta Imagen se insertara en la Ficha</strong></td>
            </tr> 
            <tr>
                <td align="center"><?php
                
include("Conexion.php");
                
$sql "SELECT MAX(codigo_imagen) FROM imagen";
                
$consulta mysql_query($sql,$DB) or die ("No se pudo ejecutar la consulta");
                
$row=mysql_fetch_row($consulta);
                echo 
"<a href=\"#\" onClick=\"popUpWindow('view.php?codigo_imagen=$row[0]', 10, 10, 800, 600)\">
                <img src=\"view_thumbnail.php?codigo_imagen=$row[0]\" border=\"0\" /></a>"
;
                echo 
"<table>
                    <tr>
                        <td><a href='FormA.php'>.::Regresar::.</a> </td>
                        <td><a href='Delete.php?id=$row[0]'><img src='../../images/b_drop.png' title='Elimina Imagen' border='0' height='16' hspace='2' width='16'></a> </td>
                    </tr>
                </table>"
;
                include(
"close_conexion.php");
                
?></td>
            </tr>
         </table><br/>
        </td>
    </tr>
</table>
</body>
</html>
Aqui lo interesante y mi problema pues al hacer "Regresar" al FormA ya no estan los datos que coloque y el Usuario tendra que volverlos a poner para recien poder hacer INSERT a la BD lo cual causa molestia.... pero que pasa si el Usuario comienza llenando los campos y no inserta la Imagen si se lo preguntan.....pues no podre hacer el INSERT del FormA a la BD
  #7 (permalink)  
Antiguo 03/10/2008, 17:33
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: ¿Retornar sin que se pierdan los datos antes ingresados?

Hola Ronruby

Estube revisando lo que me sugeriste con lo referente a sesiones y segun lo que me respondiste es que hay que hacer un envio de variables con el POST y luego asignarle una sesion y llamarlos desde los imput...pero lo que pasa es que yo no hago ningun envio es decir no hago aun un envio con el POST ....no se si quedo claro si te fijas en el codigo y como es que trabajan los Formularios solo e trabajado con el FormB que es el de las imagenes y alli no tengo problemas todo esta perfecto ,,,el problema es en el FormA pues no hago o no eh hecho ningun envio de valores aun usando el POST entonces como es que puedo capturar esos valores ???
  #8 (permalink)  
Antiguo 24/12/2008, 11:59
 
Fecha de Ingreso: diciembre-2008
Mensajes: 19
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: ¿Retornar sin que se pierdan los datos antes ingresados?

AQUI TE PONGO UN EJEMPLO :

Bueno a ver si me puedes entener, veo que pues todos dan su aporte y eso se merece un gran respeto a todos los usuario que vrindan o brindamos apoyo e intercambiamos conocimientos, ya que algun dia nos tocara aprender algo mas.

Bueno respecto al tema si no deseas usar SESSIONES o lo ves un poco complicado,
te sugiero q hagas esto.

Dentro de tu formulario, casi al final antes de cerrar el </form> crea un input oculto.



Código PHP:
<input type="hidden" name="formulario" id="formulario">
</
form

Luego pondrias algo asi:


Código PHP:
if(array_key_exists("formulario",$_POST)){    

$vParametro ="pnombre=$txtnombre&papellido=$txtapellidopaterno";


<------------- Esto te verifica que si al dar click en el boton enviar y pasar a tu prueba.php existe el formulario osea tu campo oculto y ahi dentro crear una variable llamada $vParametro, la cual dentro pondras parametros que seran = a tus variables que muestarn el nombre y el apellido de tu BD.

Esto quiere decir que cuando hagas POST osea cando presiones el boton que te lleva a prueba.php, se estara llevando tambien los valores de tus variables, osea el NOMBRE y APELLIDO.

ahora en

PRUEBA.PHP
=================

Ahora aqui tienes que recuperar los valores enviados y se recuperan co GET:



Código PHP:
if(isset($_GET["pnombre"])){
        
$vNombre=$_GET["pnombre"];
    }
if(isset(
$_GET["papellido"])){
        
$vApellido=$_GET["papellido"];
    }

$varParametros="?pnombre=$vNombre&papellido=$vApellido"

<----------- En $varParametros Aqui armas la misma estructura que en tu formualrio, para volver a mandar tus datos a tu formulario para que se muestren cuando regresas a el. Antecediendo el simbolo "?" ya que se concatenara con tu URL de retorno



Código PHP:
<a href="<?php echo "prueba.php$varParametros"?>" >RETORNAR</a>
Ojo que los parametros tienen que ser iguales tanto en tu FORMULARIO como en tu PRUEBA.PHP = "pnombre,papellido".

==============================
y como FINAL regresas a tu FORMULARIO y recuperas los Datos:

y ahora Recuperas los valores que enviaste:




Código PHP:
if(isset($_GET["pnombre"])){
        
$txtnombre=$_GET["pnombre"];
    }
if(isset(
$_GET["papellido"])){
        
$txtapellidopaterno=$_GET["papellido"];
   } 
date cuenta que puedes recuperar datos por GET y que tus variables aqui deben ser las variables que pintes en tu texto nombre y apellido.

Espero me hallan entendido.

Y si desean alguna aclaracion pueden hacerlo en mi pequeño foro
http://wazuu.foroactivo.es/foro/portal.php

y Espero que algun dia llege a ser tan popular como FOROSDELWEB, que es una gran web de intercambio de conocimientos y espero que salgan cada vez mas web como esta y asi informar cada vez mas a los usuarios.

Gracias a todos.
AyllonDark
  #9 (permalink)  
Antiguo 03/01/2009, 13:21
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: ¿Retornar sin que se pierdan los datos antes ingresados?

Hola e revisado las sugerencias que me dieron..pero no e podido resolver mi problema aun, si quiero hacerlo o trabajarlo con sesiones aclaro, pero nada las opcciones que me dan no an dado resultado por que no se a captado de como estoy trabajando con este formulario o no e sido lo suficientemente claro, les parecera una groseria pero solo estoy siendo sincero pues ya no se que mas hacer... gracias a todos de todas maneras No quiero crear otro tema poniendo el mismo problema pero les pido que se fijen en las caracteristicas del formulario que esta abajo es uno referencial pues mi formulario tiene muchos datos para llenar y por eso me urge resolver este problema ya tiene bastante tiempo este tema desde que lo cree y no quiero crear otro

Si estoy trabajando con sesiones para guardar valores que utilizo en otros formularios y no tengo problemas con lectura y guardado de sesiones y si observan mis formularios son solo 3 que no tienen nada de especial pero se me aparecio esta particular situacion de que se pierden los datos que estaban puestos al retornar a mi formulario principal.... y vuelvo hacer la pregunta y ser de mi parte mas claro a explicarlo:

¿Retornar sin que se pierdan los datos antes ingresados?

son referenciales estos formularios y son 3 con los que se trabajo

FormA: contiene 2 inputs que son llenados y un link que accede al FormB

FomB: aqui se escoje la imagen y se guarda en la BD

View_Image: le mostrara al usuario la imagen que selecciono y dos opciones: retornar a FormA o Eliminar la imagen y escojer otra

ahora como capturo esos datos del FormA, se me hace dificil, lo que uso para capturar datos en sesiones es esto por ejm:

Aqui hago una busqueda:

<form method="POST" action="Buscar.php">
<input type="TEXT" name="busca" >
<input type="submit" value="Buscar Registro">
</form>

estoy enviando el valor por medio de POST y en Buscar.php lo recojo...

en Buscar.php lo recojo en la variable $val

<?php
session_start();
$val = $_POST["busca"];
$_SESSION['busca'] = $val;
?>
.
.
.
codigo para hacer busqieda
.
.
.

y para utilizar esa variable en otro lugar la leo asi

<?php
session_start();
$reg = $_SESSION['busca'];
?>
.
.
.

he venido trabajando asi en el resto de formularios y no tengo problemas pero para aplicar esto en mi FormA y capturar los datos que aqui hay NO SE PUEDE y es por lo sgte:

Porque todos los valores que POST toma los esta enviando a Insertar_Pieza.php y ni modo que haga alli las variables de sesion..... Entonces donde?..... no es como el ejmplo de arriba donde en Buscar.php recojo los valores y las hago sesiones aqui no puedo pues Insertar_Pieza.php me hace el INSERT a la BD de nombre, tamaño ... e imagen

Si se fijan el FormA tiene esta estructura

<form method="POST" action="Insertar_Pieza.php">
<input type="TEXT" name="nombre" >
<input type="TEXT" name="tamaño" >
.
.
<a href="FormB.html">Imagen</a>
<input type="submit" value="Guardar Registro">
</form>

Ahora me pueden decir porfavor como solucionar esto??? donde hago la captura.... bueno esperare gracias

Última edición por Enishy; 03/01/2009 a las 13:32
  #10 (permalink)  
Antiguo 19/01/2009, 09:07
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: ¿Retornar sin que se pierdan los datos antes ingresados?

Hola Amigos del Foro....

Gracias por sus aportes en ayudarme en este problema que tenia, pues si que tenia, porque despues de mucho tiempo pude resolverlo... hey Ronruby pues si tenias razon al principio no podia entenderte la solucion que me dabas pero utilizando la alternativa que me diste y una modificacion de mi parte pude resolver el maldito problema este de que se me perdian los valores al regresar... lo que hice es esto:

Mi formulario anterior a travez de un link accedia al form de las imagenes para insetarlas y al regresar se perdian los valores que habia puesto.... bueno se me ocurrio quitar ese link e insertar la imagen agregando al formulario multipart/form-data y llevar los valores ingresados usando POST y trabajar sesiones a partir de alli como sugiere el amigo Ronruby y eso fue todo...gracias por tomarce su tiempo
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 18:07.