Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/06/2004, 07:09
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si tu haces algo tipo:

Código PHP:
<html>
<head>
</head>
<body>
texto1.
<?
// if ($submit )
//validaciones if (....)
// muestras texto
} else {
<
form action="esta misma página.php" .. tu formulario>
</
form>
}
?>
texto2
</body>
</html>
vas a ver siempre ese texto1 y texto2 por qué todo lo haces sobre el mismo script ..

Tendrías que generar "dos" páginas HTML completas en ese mismo script para los dos casos:

a) Validación incorrecta con el mensaje X
b) presentar formulario
y si corresponde .. tambien una "tercera" página con el resultado del proceso de los datos del formulario ..

Código PHP:
<?
if ($submit){

   
// validaciones
   
if (.....){
   <
html>
    
tu mensaje de error...
    </
html>
   }

   
// otra validacion
   
if (....){
   <
html>
    
otro mensaje de error
    
</html>
   }
} else {
<
html>
<
form ...>
</
form>
</
html>
}
Todo esto se pued ir refinando con funciones que llame a tu "cabecera y pie" de página por ejemplo ..

Pero, para estos casos vale más la pena mandar tu formulario a otra página que va a contener sólo el código de la validación y proceso (en el action)

así tendrías

procesar.php y tu formulario.php .. al validar en procesar.php (ahí apuntarías tu action del formulario) .. ya vas a generar una pagina nueva entera (incluso puedes "lanzar" vía javacript una ventana nueva y hacer ahí el proceso y mostrar los mensaje de error si se producen .. )

Para volver a tu formulario.php .. usarías la técnica descrita por X3mdesing donde se propagan las variables que enviastes a "procesar.php" al formulario.php para reestablecer sus valores originales y correjir el error .. Incluso el mensaje de error podrías mostrarlo sobre el própio formulario.

Un saludo,