Foros del Web » Programando para Internet » PHP »

datos pegados cuando actualizo

Estas en el tema de datos pegados cuando actualizo en el foro de PHP en Foros del Web. cada ves que actualizo el formulario index.php los datos previos ingresados como nombre apellidos etc, no se limpian de los textbox see-datos.php <?php //iniciamos la ...
  #1 (permalink)  
Antiguo 04/10/2011, 09:21
 
Fecha de Ingreso: agosto-2009
Ubicación: lima
Mensajes: 63
Antigüedad: 14 años, 9 meses
Puntos: 1
datos pegados cuando actualizo

cada ves que actualizo el formulario index.php los datos previos ingresados como nombre apellidos etc, no se limpian de los textbox
see-datos.php
<?php
//iniciamos la sesion
session_start();
//guardamos los valores que fueron enviados por el formulario en variables de sesion
$_SESSION['A'] = $_POST['campo1'];
$_SESSION['B'] = $_POST['campo2'];
$_SESSION['C'] = $_POST['campo3'];
$_SESSION['D'] = $_POST['campo4'];
$_SESSION['E'] = $_POST[campo5];
header ("Location: insertarpais.php");
?>

index.php
...
value="<?php if (isset($_SESSION['A'])){ echo $_SESSION['A']; } ?>"
...

el inserta_pais.php tiene un insert para la tabla de la BD solamente
  #2 (permalink)  
Antiguo 04/10/2011, 09:32
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: datos pegados cuando actualizo

Es normal que no se valla la información porque estás volcandola a una variable de sesión y tendrá valor en toda la navegación.

Si quieres eliminar los valores de sesión puedes usar session_destroy(), con esto borra todas, pero si quieres eliminar una en concreto, simplemente pásale un valor nulo o vacío.

Saludos.
  #3 (permalink)  
Antiguo 04/10/2011, 09:45
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
Respuesta: datos pegados cuando actualizo

Hola Calichinew

En primer lugar, te hago una pregunta ¿Para que haces la redirección a otro php pudiendo utilizar el archivo donde creas las variables de sesion?

Código PHP:
<?php
session_start
();
$_SESSION['A'] = $_POST['campo1'];
$_SESSION['B'] = $_POST['campo2'];
$_SESSION['C'] = $_POST['campo3'];
$_SESSION['D'] = $_POST['campo4'];
$_SESSION['E'] = $_POST[campo5];
header ("Location: insertarpais.php"); // Elimina esto y coloca debajo tu llamada a la 
// funcion para insertar el registro en lugar de estar creando variables de sesion

// function insertar_pais(){
//   ...............
//}
?>
Por otro lado si quieres limpiar las variables de sesion luego de insertar el registro tendrias que colocar este codigo

Código PHP:
session_start();
session_unset();
session_destroy();
header("Location: index.php"); // esto es una ruta para luego de limpiar las variables de sesion 
Saludos y espero haya sido de ayuda
  #4 (permalink)  
Antiguo 04/10/2011, 19:15
 
Fecha de Ingreso: agosto-2009
Ubicación: lima
Mensajes: 63
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: datos pegados cuando actualizo

sucede que el formulario index.php deve conservar los datos previos en los textbox cuando vuelvo de otro form en donde agrego el nuevo pais si es ke no se encuentra en el combolist de index.php
y si hago
session_start();
session_unset();
session_destroy();

me limpia todo,, y tengo que digitar denuevo,, no deve funcionar asi
  #5 (permalink)  
Antiguo 04/10/2011, 20:28
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: datos pegados cuando actualizo

Lo mas sencillo (y tal vez practico) es crear un array con los valores del formulario:

Código PHP:
Ver original
  1. $_SESSION['formulario'] = array(
  2.     'campo1' => $_POST['campo1'],
  3.     'campo2' => $_POST['campo2'],
  4.     'campo3' => $_POST['campo3'],
  5. );

Asi, cuando el formulario sea enviado y procesado correctamente, simplemente eliminas esa variable de sesion, dejando activas las demas, que supongo usas para control de usuarios:

Código PHP:
Ver original
  1. unset($_SESSION['formulario']);
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 04/10/2011, 21:12
 
Fecha de Ingreso: agosto-2009
Ubicación: lima
Mensajes: 63
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: datos pegados cuando actualizo

antes se tiene que poner session_start() ?
  #7 (permalink)  
Antiguo 04/10/2011, 22:01
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: datos pegados cuando actualizo

A ver, creo que ya hemos tratado este tema varias veces y no te ha quedado del todo claro:

1. Siempre que planees usar sesiones debes usar session_start();, pero solo una vez.
2. No importa si el usuario ya se identifico o es invitado, debes habilitar la sesion por si necesitas guardar informacion adicional, como en este caso, del formulario.
3. Si tu web esta basada en usuarios, lo mejor es que pongas session_start(); en un archivo que incluyas en todas tus paginas como: conexion a base de datos, configuracion, funciones comunes, etc. y asi te evitas muchos problemas, sabiendo que ya habilitaste sesiones en ese lugar en especifico y para toda la web.
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 05/10/2011, 09:12
 
Fecha de Ingreso: agosto-2009
Ubicación: lima
Mensajes: 63
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: datos pegados cuando actualizo

para conservar los datos previos en edicion.php (ojo:este form edicion.php viene con los datos ya cargados en los text ) para eso uso db_user(que contiene un select anidado)
<?php
$var_user = $_POST["user"];
...
$sel_user = "SELECT I.*, SS.nombredelpais,C.nombrecorto AS nombre_curso
FROM tabla1 AS I
LEFT JOIN tabla2 AS C ON I.idcampo2 = C.idcampo2
LEFT JOIN tabla3 AS SS ON I.idcampo3 = SS.idcampo3
WHERE I.id_inscrito = '".$var_user."'";

$res_user = mysql_query($sel_user, $link);
$db_user = mysql_fetch_array($res_user);
?>

y en el html lo llamo asi:
....
value="<?php echo $db_user["apellidom"];?>" <?php if ($_SESSION["id_tipousuario"] != 1) echo 'readonly="readonly"' ;?>
...

*********************************
entonces es aqui en edicion.php donde tengo los objetos (text + button + ...) y un boton me lleva a otro form (agregarnuevopais.php) es ai que al volver al form edicion.php cuando los datos ya no estan
  #9 (permalink)  
Antiguo 05/10/2011, 11:27
 
Fecha de Ingreso: agosto-2009
Ubicación: lima
Mensajes: 63
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: datos pegados cuando actualizo

TRIBY
$_SESSION['formulario'] = array(
* * 'campo1' => $_POST['campo1'],
* * 'campo2' => $_POST['campo2'],
* * 'campo3' => $_POST['campo3'],
);

como muestro el valor de cada campo en cada textbox
  #10 (permalink)  
Antiguo 05/10/2011, 13:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: datos pegados cuando actualizo

Similar a lo que haces con el checkbox:

value="<?php if (isset($_SESSION['formulario']['campo1'])) { echo $_SESSION['formulario']['campo1']; } ?>"
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 06/10/2011, 07:24
 
Fecha de Ingreso: agosto-2009
Ubicación: lima
Mensajes: 63
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: datos pegados cuando actualizo

see-data.php::
1<?php
2session_start()
3$_SESSION['formulario'] = array(
4 * 'campo1' => $_POST['campo1'],
5* * 'campo2' => $_POST['campo2'],
6 * 'campo3' => $_POST['campo3'],
7);
8header ("Location: insertarpais.php");
9?>

mensaje error:
Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\rr.ee\see-data.php on line 3

la accion sucede al hacer click en boton nuevo pais del index.php
  #12 (permalink)  
Antiguo 06/10/2011, 07:42
 
Fecha de Ingreso: agosto-2009
Ubicación: lima
Mensajes: 63
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: datos pegados cuando actualizo

se borra los datos que ya habia ingresado en index.php cuando doy click en Cancelar>> de insertarpais.php

index.php
...
<form id="form_a" name="form_a" method="post" action="see-data.php">
...
<input name="nombres" type="text" id="nombres" size="35" maxlength="35" value="<?php if (isset($_SESSION['form_a']['nom'])) { echo $_SESSION['form_a']['nom']; } ?>" onKeyUp="validar(this)" />
...
</form>

see-data.php
<?php
$_SESSION['form_a'] = array(
'nom' => $_POST['nombres'],
'campo2' => $_POST['campo2'],
'campo3' => $_POST['campo3'],
);
header ("Location: insertarpais.php");
?>

insertarpais.php
<form name="f1" method="post" action="insertapais.php" onsubmit="return validar()">
...
<input name="boton_volver" type="button" value="Cancelar >>" id="boton_volver" onclick="location.href='index.php'" />
...
</form>

¿el boton deve ser del type "button" o "submit"?

Última edición por calichinew; 06/10/2011 a las 08:00

Etiquetas: tabla, variables
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:18.