33 Votos

PHP: Enviar Formulario con muchas Casillas de Verificación a un Script cómodamente

Consejo de Stefan Trost | 02/02/2023 a las 23:08

Cada vez que tenemos un formulario con una gran cantidad de casillas de verificación, surge la pregunta de cómo podemos evaluarlas mejor en PHP después de una entrada del usuario. Finalmente, puede ser muy complicado nombrar y leer cada casilla individualmente para obtener el valor de la casilla de verificación.

En este consejo, quiero mostrarle una forma de controlar este problema y establecer los primeros pasos para una evaluación más sencilla más adelante ya en el formulario HTML.

El Código HTML

Primero echamos un vistazo al código HTML de nuestro formulario:

<form method="post" action="script.php">
 <input type="hidden" name="formulario_colores" value="1">
 <label><input type="checkbox" name="colores[]" value="verde">verde</label>
 <label><input type="checkbox" name="colores[]" value="azul">azul</label>
 <label><input type="checkbox" name="colores[]" value="rojo">rojo</label>
 <label><input type="checkbox" name="colores[]" value="negro">negro</label>
 <label><input type="checkbox" name="colores[]" blanco="white">blanco</label>
 <input type="submit" name="button_submit">
</form>

Nuestro formulario consta de un botón de envío y 5 casillas de verificación con las que se pueden seleccionar nombres de colores.

Lo especial: Todas las casillas de verificación tienen el mismo nombre "colores[]". Esto hace posible que todos los valores de las casillas de verificación se envíen al script PHP en una sola variable. Obtenemos la matriz / array "colores" y no muchas variables individuales, como sería el caso si le diésemos un nombre único a cada casilla de verificación.

Si no se marca ninguna casilla de verificación, la matriz está vacía. Por lo tanto, usamos adicionalmente un campo oculto (aquí con el nombre "formulario_colores" en la segunda línea), que se envía en cualquier caso con un valor no vacío para verificar que el formulario fue enviado.

El Código PHP

Por último, solo necesitamos el código PHP para obtener los datos:

if ($_POST["formulario_colores"]) {
  $colores = $_POST["colores"];
   
  echo '<p>Los siguientes colores han sido elegidos:</p>';
  echo '<p>';
  foreach ($colores as $valor) {
    echo "$valor <br>";
  }
  echo '</p>';
}

En la primera línea, verificamos primero si el formulario fue enviado (nuestro campo oculto existe). Si es así, generamos una lista de los colores seleccionados.

Para este propósito, almacenamos la matriz del formulario en la variable $colores y usamos foreach para recorrer toda la matriz, de modo que podamos echo los valores individuales.

Los valores que llegan al script se determinan en nuestro código HTML. Esos son los valores escritos en el atributo "value" de la casilla de verificación seleccionada. Por supuesto, también puede escribir números o cualquier otra palabra en el valor.

ResponderPositivoNegativoFechaVotos
00 Votos

Esto funciona perfectamente.

Pero necesito una matriz de casillas de verificación para una lista de opciones de contrato que un solicitante elige como parte de un formulario de solicitud que se me envía por correo electrónico.

¿Cómo puedo hacer que envíe los valores a mi mailbox?
25/02/2022 a las 17:16

ResponderPositivo Negativo
11 Voto

La forma más fácil es almacenar los valores en una cadena / string en lugar de echolos.

Entonces, en el ciclo, usa algo como:

$msg += $value;

Después de eso, puede enviar los valores por correo electrónico a través de la función de correo de PHP:

mail('mail@example.com', 'Sujeto', $msg);

No necesitas ajustar nada más.
25/02/2022 a las 21:26

Positivo Negativo
Responder
Responder

Sobre el Autor

AvatarPuede encontrar software de Stefan Trost en la pagina es.sttmedia.com. ¿Necesita un software individual según sus propios requisitos? Escribenos: es.sttmedia.com/contacto
Ver Perfil

 

Temas Relacionados

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.