Google
Web dns.bdat.net

Formulario dinámico

Es frecuente que una vez que tenemos hecho un formulario para una página tengamos que modificarlo para añadir o quitar algún campo o incluso más aún, que no sepamos de antemano cuantos valores tenemos que definir en el formulario, que el número de campos que tenemos que leer dependa de alguna condición.

Otro problema frecuente con los formularios es tener que redefinir los parámetros de todas las funciones que manipulan los datos leídos de un formulario, cambiando bien los argumentos de la función o bien la declaración de variables globales cada vez que tenemos que agregar la lectura de un nuevo dato. Por ejemplo la función que valida los datos introducidos antes de insertarlos en una tabla.

A continuación vemos un ejemplo de formulario dinámico. El truco simplemente es llamar a los campos del formulario como si fueran elementos de un array y de esta forma obtenemos todos los datos del formulario en un único array:

<?php
echo '<head>
            
              <title>'.$_SERVER[PHP_SELF].'</title>
            
      </head>
            
      <html>
            
      <body>';
if (isset($_POST[frm]))
            
      $frm=$_POST[frm];
echo '<form action="'.$_SERVER[PHP_SELF].'" method=post>';
            
echo 'Nombre <input name=frm[nombre] value="'.$frm[nombre].'"><br>';
            
echo 'Apellidos <input name=frm[apellidos] value="'.$frm[apellidos].'"><br>';
            
echo '<input type=submit name=frm[boton] value="Enviar"><br>';
            
echo '</form>';
if (count($frm))       
            
      foreach($frm AS $campo => $valor)
            
              echo 'El valor de '.$campo.' es '.$valor.'<br>';
echo "<a href=$_SERVER[PHP_SELF]>Recargar la Página</a>";
echo '</body>
            
      </html>';
?>