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:
<title>'.$_SERVER[PHP_SELF].'</title>
|
<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>
|