Foros del Web » Programando para Internet » PHP »

Guardar los datos de un formulario para actualizarlo después

Estas en el tema de Guardar los datos de un formulario para actualizarlo después en el foro de PHP en Foros del Web. ¡Hola! No llevo mucho con php y estoy haciendo un programilla en el que tengo que crear un profesor, y ese profesor tiene que introducir ...
  #1 (permalink)  
Antiguo 13/04/2007, 09:52
 
Fecha de Ingreso: febrero-2007
Mensajes: 138
Antigüedad: 17 años, 2 meses
Puntos: 0
Guardar los datos de un formulario para actualizarlo después

¡Hola!

No llevo mucho con php y estoy haciendo un programilla en el que tengo que crear un profesor, y ese profesor tiene que introducir sus titulaciones (que pueden ser una o varias). Entonces tengo un interfaz para introducir el profesor:
Código:
<?
  session_start();
?>
<html>
<head>
<title>Crear un profesor</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<?
include("conexion.php");
$sql = "select * from profesores where login = '".$login."'";
$result = mysql_query($sql, $GLOBALS["miConexion"]) or die(mysql_error());
$fila= mysql_fetch_assoc($result);

$sql1 = "select * from titulaciones where DNIProfesor = '".$fila['DNI']."'";
$result1 = mysql_query($sql1, $GLOBALS["miConexion"]) or die(mysql_error());
$nFilas=mysql_num_rows($result1);

echo '<form name="f" method = "POST" action ="guardarNuevoProfesor.php">

    <h2>Datos de un nuevo profesor</h2>
    <div style="margin-left: 3%; width=200px;"> 
    DNI: <input name="cDNI" type="text">
	<br><br>
	Nombre: <input name="cNombre" type="text"">
	&nbsp&nbsp Primer apellido: <input name="cApellido1" type="text">
	&nbsp&nbsp Segundo apellido: <input name="cApellido2" type="text">  
	<br><br>
	Dirección: <input name="cDireccion" type="text" size="40">
	&nbsp&nbsp Teléfono: <input name="cTelefono" type="text">
    <br><br>';

echo '<fieldset  size="10"><p><legend>Dedicación</legend></p><p></p><label>
    <input type="radio" name="cDedicacion" value="valorTotal">Total</label>&nbsp&nbsp<label>
    <input type="radio" name="cDedicacion" value="valorParcial">Parcial</label><br>
</fieldset>';

echo	'<br><br>  
	Otras actividades: <br>
	<textarea name="cOtrasActividades" cols="40" rows="4"></textarea>';

echo	'<br><br>  
	
	<input name="cDirector" type="checkbox" value="valorDirector"> Director
	&nbsp;&nbsp;
	<input name="cSubdirector" type="checkbox" value="valorSubdirector"> Subdirector
	&nbsp;&nbsp;
	<input name="cTutor" type="checkbox" value="valorTutor"> Tutor
	&nbsp;&nbsp;
	<input name="cJefeSeccion" type="checkbox" value="valorJefeSeccion"> Jefe sección
	&nbsp;&nbsp;
	<input name="cOrientador" type="checkbox" value="valorOrientador"> Orientador
	<br><br>

<center>
<input name="botonGuardar" type="submit" value="Guardar">
<a href="anadirTitulacion.php"><input name="botonAnadirTitulacion" align="right" type="button" value="Añadir titulación"></a> <br><br>
</center>
</form>';

?>

</body>
</html>
Y con el botón añadir titulación me voy a otro interfaz donde se introducirían las titulaciones:

Código:
<?
  session_start();
?>
<html>
<head>
<title>Dar de alta una titulación de un profesor</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script type="text/javascript">
<!--
num=0;
function crear(obj) {
  num++;
  fi = document.getElementById('fiel'); // 1
  //fi.insertBefore(contenedor,obj); // 2
 contenedor = document.createElement('div'); // 2
  contenedor.id = 'div'+num; // 3
  fi.appendChild(contenedor); // 4

  ele = document.createElement('input'); // 5
  ele.type = 'text'; // 6
  ele.name = 'text'+num; // 6
  ele.size = '40';
  contenedor.appendChild(ele); // 7
  
  ele = document.createElement('input'); // 5
  ele.type = 'button'; // 6
  ele.value = 'Borrar'; // 8
  ele.name = 'div'+num; // 8
  ele.onclick = function () {borrar(this.name)} // 9
  contenedor.appendChild(ele); // 7
}
function borrar(obj) {
  fi = document.getElementById('fiel'); // 1 
  fi.removeChild(document.getElementById(obj)); // 10
}

function enviar(){
  document.form1.submit();
}
--> 
</script>

</head>

<body>

<?
include("conexion.php"); 
				// Recojo las titulaciones que lleva hasta el momento introducidas el usuario
$sql = "select * from titulaciones where DNIProfesor = '".$fila['DNI']."'";
$result = mysql_query($sql, $GLOBALS["miConexion"]) or die(mysql_error());
$nFilas=mysql_num_rows($result);

echo '<form name="f" method = "POST" action ="guardarTitulacion.php" OnSubmit="return validar(this)">
<div style="margin-left: 3%; width=200px;"> ';
echo'<h2>Nombre de la nueva titulación</h2>'; 

echo '					
<fieldset id="fiel">		
<input type="button" value="Añadir titulación" onclick="crear(this)">
</fieldset>';

if ($nFilas>0){
echo'<h2>Titulaciones introducidas para este profesor hasta el momento</h2>'; 
	while($fila= mysql_fetch_assoc($result)){
	echo'<br><br>	
		&nbsp&nbsp <input name="'.$fila['nombreTitulacion'].'" type="text" readonly="true" size="40" value="'.$fila['nombreTitulacion'].'">';
	}	
}else{
	echo'<h3>No hay titulaciones introducidas para este profesor hasta el momento</h3>'; 
}
echo '<br><br>';

echo'
<center>

<input type="submit" value="Guardar" onclick="enviar(this)">';
echo'
<a href="crearProfesor.php"><input name="botonVolver" align="right" type="button" value="Volver"></a> <br><br>
</center>
</form>';

?>
</body>
</html>
Estos dos scripts por separado me funcionan muy bien, pero el problema viene en que la manera natural de rellenar este formulario es rellenar el profesor primero, las titulaciones después y ya el tercer paso sería guardar el profesor con sus titulaciones, pues bien, relleno al profesor, me voy a las titulaciones y relleno las titulaciones y cuando vuelvo a la página del profesor me carga otra vez la página y los datos que tenía rellenos ya no están. Y no sé cómo podría almacenarlos para actualizar el formulario cuando el usuario venga de meter sus titulaciones, en la sesión???? Si puediérais ayudarme.

Gracias.
  #2 (permalink)  
Antiguo 13/04/2007, 10:17
 
Fecha de Ingreso: febrero-2007
Ubicación: Peru
Mensajes: 38
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Guardar los datos de un formulario para actualizarlo después

Usa capas, que una donde esten los datos del profesor, y luego la hacer click en titulos que se oculte la capa de los datos personales, y sea visible la del formulario de titulacion, asi, no recargas la pagina y todo eso dentro de un formulario, luego no te olvides de un botno que haga lo contrario, que oculte al formulario de titulacion y haga visible el otro
  #3 (permalink)  
Antiguo 13/04/2007, 11:12
 
Fecha de Ingreso: febrero-2007
Mensajes: 138
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Guardar los datos de un formulario para actualizarlo después

Pero ¿cómo uso las capas? ¿qué son? Es que estoy leyendo por ahí y entre otras cosas sirve para ocultar o mostrar una parte de la página, pero no consigo ver cómo la tengo que usar. Si pudieras dejarme algún link en el que lo explicaran te lo agradecería.

Muchas gracias
  #4 (permalink)  
Antiguo 13/04/2007, 12:36
 
Fecha de Ingreso: febrero-2007
Ubicación: Peru
Mensajes: 38
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Guardar los datos de un formulario para actualizarlo después

hola, actualmente puedes encontrar sobre capas, en cualquier sitio, es algo asi:
en tus estilos declaras
<Style>
#NombreCapa{
position:absolute;
left:350px;
top:290px;
width:500px;
height:150px;
z-index:5;
visibility:visible;
border:2px solid #003366;
background-color:#a9dc5e;
}
</style>

te explico lo basico:
position: puee ser absolute o relative, pon absolute, relative es una huevada
left, top: son los margenes, eso ya sabes
width, height: tambien facil
z-index: es el orden que va a tener entre diferntes capas, si tienes 2 o mas capas visibles al mismo tiempo, la de mayor numero va a estar por encima de las demas
visibility: visible ó hidden
es la visibilidad
hay mas, pero con esos basta

dentro de tu body, deves declara un bloque div, algo asi

<body>
<div id="NombreCapa">
<!-- AQUI PONES TODO EL CONTENIDO DE TU PRIMER FORMULARIO, COMO SI FUERA OTRA PAGINA WEB -->
</div>
</body>

CLARO QUE DEBES TENER UN EVENTO QUE HAGA QUE LA PROPIEDAD DE ESTA CAPA SE OCULTE O SE HABA VISIBLE
algo asi:
document.all["NombreCapa"].style.visibility ='visible';
o
document.all["NombreCapa"].style.visibility ='hidden';

esta es una explicacion recontra rauda, asi que te recomiendo que sigas investigando, si me das tu mail, te envio una url donde estoy implementando algo asi, para que veas un ejemplo de como funciona, no lo coloco aca, por que no puedo poner url y por que no esta terminada, y no quiero que le metan codigo malicioso, jeje, nunca falta gente que jode
  #5 (permalink)  
Antiguo 13/04/2007, 12:39
 
Fecha de Ingreso: febrero-2007
Ubicación: Peru
Mensajes: 38
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Guardar los datos de un formulario para actualizarlo después

Me olvidaba, el hacer que se oculte o se vea una capa, tambien lo hace mas facil con Dreamweaver, seleccinas digamso una imagen o un link, vas a comportamientos, click en el " + ", luego en mostrar ocultar capa, y le das el comportamiento deseado
  #6 (permalink)  
Antiguo 13/04/2007, 12:42
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
De acuerdo Re: Guardar los datos de un formulario para actualizarlo después

Hola marcospuig.

La idea de utilizar DIV's es buena, pero la debes unir con Php. Es decir puedes ocultar o mostrar DIV's haciendo un codicional "IF", si se cumple algo, pues que lo muestre sino pues que lo oculte. La manera de ocultar y mostrar capas lo puedes hacer mediante banderas que las pasas por URL.

Inclusive, si utilizas la lògica procedimental no tendràs que usar DIV'S, lo harìas como pa' darle un estilo a tu aviso.

Saludos y espero te sirva!!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #7 (permalink)  
Antiguo 19/09/2008, 10:10
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Guardar los datos de un formulario para actualizarlo después

me ocurre lo mismo que marcospuig, pero me pasa solamente en Explorer. En Firefox no se borran los campos cuando refresca la pagina. Hay algun tag para agregarle al archivo de tal manera que el Explorer no los borre tampoco ??

gracias
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 08:31.