Procesar un formulario en la misma página



Muchas veces cuando creamos un formulario, hacemos referencia a un script externo que nos procesará la información y previamente la visualizará o mostrará un resultado. nosotros podemos procesar la información de ese formulario haciendo referencia a la misma página desde la etiqueta action y luego procesar toda la información para luego imprimirla en la misma página.

<?php

if(isset($_POST['enviar'])){ 

$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
if($nombre == ""){
$nombre = "No has escrito tu nombre";
}
else {
$nombre = "Tu nombre es ".$nombre;
}

if($apellido == ""){
$apellido = "No has escrito tu apellido";
}
else {
$apellido = "Tu apellido es ".$apellido;
}
}

?>
<html>
<head>
<title>Resultados en la misma página</title>
</head>
<body>
<form method="post" action="prueba.php">
<table>
<tr>
<td>Tu nombre</td>
<td> <input type="text" name="nombre" /> </td>
<td> <?php echo @$nombre; ?> </td>
</tr>
<tr>
<td>Tu apellido</td>
<td><input type="text" name="apellido" /></td>
<td><?php echo @$apellido; ?></td>
</tr>
<tr>
<td><input type="Submit" value="Mostrar datos" name="enviar" /></td>
</tr>
</table>
</form>
</body>
</html>

Como podemos observar en el formulario hicimos referencia a la misma página a través de la etiqueta action colocando el mismo nombre del archivo:

<form method="post" action="prueba.php">

Luego al principio de la página añadimos el código que nos dice si se declara o activa “enviar” que es el name del botón submit, este activará el código PHP para procesar el formulario.

if(isset($_POST['enviar'])){ 

Luego recogemos todo los datos que nos proporciona el formulario declarando las debidas variables y luego empezamos con los condicionales sí la variable $nombre esta vacía (es igual o igual a ” “), entonces significa que esta vacía y tendrá un nuevo valor que dice “No has escrito tu nombre”.

$nombre = $_POST['nombre'];
    $apellido = $_POST['apellido'];
    if($nombre == ""){
        $nombre = "No has escrito tu nombre";
    }
    else {
        $nombre = "Tu nombre es ".$nombre;
    }

De lo contrario se se escribió algo la variable toma el valor de $nombre = “Tu nombre es “.$nombre, así mismo. Ahora lo que necesitamos es mostrar ese valor en frente de las cajas de texto, así que ponemos un nuevo código en PHP de esta forma:

<td>Tu nombre</td>
        <td><input type="text" name="nombre" /></td>
        <td><?php echo @$nombre; ?></td>

Le damos un echo a la variable nombre que dependiendo de su valor dirá si esta vacía o si ya tiene datos, el @ es para no mostrar un error que muestra en los resultados si la variable aún no se declara, intenten dar ese echo sin el arroba a ver que pasa, luego añadanlo y verán el resultado.

VN:F [1.8.7_1070]
Rating: 10.0/10 (2 votes cast)
VN:F [1.8.7_1070]
Rating: +1 (from 1 vote)
Procesar un formulario en la misma página10.0102
Si te gusto este artículo ayudame a divulgarlo:
  • Facebook
  • Google Bookmarks
  • Meneame
  • Identi.ca
  • Twitter
  • BarraPunto
  • Bitacoras.com
  • del.icio.us
  • Digg
  • LinkedIn
  • MisterWong
  • MySpace
  • Reddit
  • Technorati

También te puede interesar...