Foros del Web » Programando para Internet » PHP »

Mantener datos form

Estas en el tema de Mantener datos form en el foro de PHP en Foros del Web. Hola a todos... No alcanzo a resolver este problema: tengo un formulario en el que pido el código del cliente (pueden ser miles) pero este ...
  #1 (permalink)  
Antiguo 27/02/2014, 12:36
 
Fecha de Ingreso: julio-2012
Ubicación: Ripollet
Mensajes: 80
Antigüedad: 11 años, 9 meses
Puntos: 1
Mantener datos form

Hola a todos... No alcanzo a resolver este problema:

tengo un formulario en el que pido el código del cliente (pueden ser miles) pero este input puede estar en medio de los demás... tengo un enlace a otra página que muestra un filtro y todos los clientes filtrados para su selección, al acabar vuelvo al formulario inicial y le paso por get el nuevo cliente...

Pero evidentemente he perdido todos los datos tecleados en dicho formulario (de origen)

No puedo pasar los datos al form de búsqueda para que me los retorne porque son muchos y es una chapuza, y no puedo guardarlos en varias cookies porque cuando el usuario hace click en el link para buscar no dispongo de un evento que me permita recoger esos valores y almacenarlos en cookies...

Como realizáis las búsquedas de un datos que puede tener miles de registros... ya que no me vale poner un combo desplegable...

me podéis echar un cable ??? gracias
__________________
Kike
  #2 (permalink)  
Antiguo 27/02/2014, 13:01
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
Sonrisa Respuesta: Mantener datos form

Hola buen día, tratare de ayudarte, si no soy claro por favor comentame y trataré de ayudarte mejor.

Lo que entiendo es que tienes un Formulario 1, y un Formulario 2, el usuario esta capturando formulario 1 cuando de pronto necesita saltarse a Formulario 2 y una vez que Formulario 2 esta terminado debe regresar a Formulario 1, pero la información que habia capturado ya no esta por que cambio de página.

En este caso no te recomiendo usar mucho las cookies, por que he leido que son muy inseguras aún cuando las cifres, la verdad no sé, pero si es lo que sabes usar, sí cuentas con un evento, recuerda que cada elemento (etiqueta) en html tiene sus propiedades y eventos, en tu caso podrías usar el evento onload del body.

Aún así, viendo que tu pregunta está en la sección de PHP, yo te sugeriría usar SESIONES, es como registrar una variable, no requiere de cookies (del lado del cliente), para esto ocuparás las siguientes cosas:

1) Usar: session_start(); como primera línea (o antes de cualquier modificación de contenido de la página o los encabezados) para indicar a PHP que usarás sesiones.

NOTA: tus archivos deben ser .php

2) Registrar previamente tus variables:

session_register('nombre1');
session_register('nombre2');
session_register('nombreN');

NOTA: te sugiero que esto lo hagas antes de entrar a Formulario 1, si las creas en Formulario 1, sería tanto (a lo que sé) como resetear las variables.

3) Asignarles valor a las variables previamente hechas:

$_SESSION["nombre1"] = "valor";
$_SESSION["nombre2"] = $variablePHP;
$_SESSION["nombreN"] = "valor y variable".$variablePHP;

NOTA: puedes asignar cualquier valor a una sesión como cualquier otra variable. Te recomendaría asignar valores AL CAMBIAR de formulario. Yo me imagino que al mandar al formulario 2, estás enviando los valores ya capturados de formulario 1 por GET o POST (da igual, pero es más seguro POST), en ese momento que entra a formulario 2 puedes hacer en las primeras lineas algo como:

<?
session_start();
$_SESSION["campo_x"] = $_POST['campo_x']; // si es con GET usas $_GET
?>

4) Una vez trabajado el formulario 2, vuelves a formulario 1, y puedes trabajar los datos de formulario 2 si los pasas con GET o POST, digamos que las sesiones se quedan en "memoria" independientemente si cambias de página o no (siempre y cuando uses session_start podrás usas las sesiones), entonces para usar los valores de las sesiones usas algo como lo siguiente en cada input

<input name="campo1" id="campo1" type="text" value="<? echo $_SESSION["campo_x"]; ?>">

NOTA: recuerda que para usar código PHP requieres tener #1 tu sitio alojado en un servidor con PHP instalado, #2 tus archivos sean con extensión .php

Bien, no sé si todo lo anterior te ayude, ojala que sí, sino, como te decia, comentame y trataré de explicarme mejor. Saludos.
  #3 (permalink)  
Antiguo 27/02/2014, 15:44
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 6 meses
Puntos: 36
Respuesta: Mantener datos form

enochap: no entiendo muy bien, el tema de pasar de un formulario a otro, usando dos paginas web, que como te dijeron anteriormente deben ser *.php, de todos modos puedes utilizar AJAX para manejar tus datos y a tal punto que necesites varios formularios manejalos en capas, las cuales si lo deseas las puedes ocultar.
  #4 (permalink)  
Antiguo 27/02/2014, 16:56
 
Fecha de Ingreso: julio-2012
Ubicación: Ripollet
Mensajes: 80
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Mantener datos form

Hola de nuevo, aclaro algunas cosas... Trabajo con php y se manejar sesiones y cookies, pero el problema no es ese.

Tengo un formulario donde pido una serie de datos (por ejemplo):

Tarjeta, fecha, dni, cliente, etc...

El campo cliente puede tener miles de registros por lo que no puedo poner un simple combobox, así que al lado del input del cliente tengo un enlace a otra página (que no es un formulario), donde muestro a través de una tabla todos los clientes previo filtrado y en cada fila permito hacer click para volver al formulario origen y pasarle por GET el ID elegido.

Pero cuando vuelvo al formulario me encuentro que ahora tengo bien el cliente pero el resto de campos están lógicamente vacíos.

Podría guardar los datos en una sesión, pero no se como hacerlo antes de abandonar la página, ya que yo solo tengo un enlace a la otra página y no se como ANTES de abandonar esta página, puedo guardar esos datos que están en los inputs.

Para empezar, no se como obtener los datos de un input y lo que quiero es guardarlos antes de salir y al volver a entrar, comprobar si hay datos y entonces recuperar-los.

Esa es mi duda, muchas gracias por vuestras respuestas.
__________________
Kike
  #5 (permalink)  
Antiguo 28/02/2014, 03:16
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Mantener datos form

Creo que la única manera posible es con Javascript o Ajax, ya que al no hacer submit al formulario, los datos nunca llegan al servidor y por lo tanto PHP no sabrá de su existencia, justo lo contrario pasa con Javascript, que al ser de cliente puede tener acceso a dichos datos, así que yo realizaría esta misma pregunta en el foro de Javascript.

También esta a opción de que el enlace se abra en una nueva ventana.

Un saludo
  #6 (permalink)  
Antiguo 28/02/2014, 11:01
Avatar de xpapachox  
Fecha de Ingreso: junio-2011
Mensajes: 77
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Mantener datos form

Usa flags.

Supoganmos tienes 2 formularios.

Form1. Con los inputs:

Código PHP:
//Haces uso flags.
$tarjeta '';
$fecha'';
$dni='';
$cliente='';

IF(ISSET(
$_GET['band'])){
$tarjeta $_GET['tarjeta'];
$fecha$_GET['fecha'];
$dni$_GET['dni'];
$cliente$_GET['cliente'];

Código HTML:
<form action="form2.php" method="post">
  <input type="text" name="tarjeta" value="<?=$tarjeta?>" />
  <input type="text" name="fecha" value="<?=$fecha?>"  />
  <input type="text" name="dni"  value="<?=$dni?>" />
  <input type="text" name="cliente" value="<?=$cliente?>"  />
</form> 

Form2: Donde filtras clientes.

Al seleccionar un cliente, obtienes el ID de este, y lo duelves junto a los demás.
Código PHP:
$tarjeta $_POST['tarjeta'];
$fecha$_POST['fecha'];
$dni$_POST['dni'];


// Aca constulas a devuevles la lista en una tabla
....
... 

En este caso como dices que no usas Formulario.

Simplemente a esa lista de Clientes que supongo, que al hacerlo clic recuperas su código.
También anidar las demás variables y retornarlos.Algo así.


Código HTML:
<a href="form1.php?cliente=<?=lista['cliente']?>&tarjeta=$tarjeta&fecha=$fecha&dni=$dni&band=1">CLIENTE1</a> 
  #7 (permalink)  
Antiguo 28/02/2014, 11:16
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
De acuerdo Respuesta: Mantener datos form

si no e entendido mal tienes un boton que te envia a otra pagina, pues bueno
si el boton le pones como un submit, cuando el usuario le de click lo que hara sera enviar las variables de los campos a la pagina en la que procesas los datos del usuario.
En esta pagina tendras las variables globales POST y GET, dependiendo del metodo que le pongas al formulario deves escojer una o otra para procesarlas y guardarlas en la global session.
Cuando el sistema lo redirija a tu primer formulario, en el campo value comprueba si existe la variable de ese campo y si existe que la escriba en el apartado.
Si no lo entiendes dame un toque y te lo esplico con un ejemplo.
Un saludo
  #8 (permalink)  
Antiguo 28/02/2014, 15:13
 
Fecha de Ingreso: julio-2012
Ubicación: Ripollet
Mensajes: 80
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Mantener datos form

Entiendo vuestras propuestas pero no las veo viables, como ya expliqué en otro mensaje anterior, puedo tener 50 o 60 inputs de petición de datos, y según vuestras sugerencias debería enviar esos 50 o 60 datos por GET, no se , me parece mucho dato por GET, además que no lo veo muy estético pasar una url con tantos datos.

Lo que me gustaría hacer es que justo antes de abandonar la página, guardar en sesiones todos los datos y al volver, recuperar-los, de esta forma el usuario no ve nada de nada y todo queda mucho más bonito y más correcto, por lo menos para mi.

Pero no se como hacer con php que al abandonar una página, obtener los datos de los inputs y guardarlos en sesiones, porque las sesiones las manejo bien, pero lo demás es lo que no se como se hace.

Gracias a vuestras aportaciones, entre todas me he acarado y ya veo por donde voy a tirar.

Muchas gracias por vuestro tiempo.
__________________
Kike
  #9 (permalink)  
Antiguo 01/03/2014, 12:56
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Mantener datos form

Cita:
Iniciado por enochap Ver Mensaje
Entiendo vuestras propuestas pero no las veo viables, como ya expliqué en otro mensaje anterior, puedo tener 50 o 60 inputs de petición de datos, y según vuestras sugerencias debería enviar esos 50 o 60 datos por GET, no se , me parece mucho dato por GET, además que no lo veo muy estético pasar una url con tantos datos.

Lo que me gustaría hacer es que justo antes de abandonar la página, guardar en sesiones todos los datos y al volver, recuperar-los, de esta forma el usuario no ve nada de nada y todo queda mucho más bonito y más correcto, por lo menos para mi.

Pero no se como hacer con php que al abandonar una página, obtener los datos de los inputs y guardarlos en sesiones, porque las sesiones las manejo bien, pero lo demás es lo que no se como se hace.

Gracias a vuestras aportaciones, entre todas me he acarado y ya veo por donde voy a tirar.

Muchas gracias por vuestro tiempo.

No es necesario enviarlos en la url, el metodo que yo te e dicho lo puedes hacer enviando el formulario por post, con lo que la url solo contendra la direccion a la que se envia para procesar los input

Etiquetas: form, formulario, registro
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 17:45.