Obtener valores de multiples CheckBox marcadas con PHP

Obtener valores de múltiples CheckBox seleccionadas con PHP. Este artículo explicaremos los métodos y/o opciones que se pueden utilizar para controlar varias casillas de verificación en formularios HTML usando PHP para el proceso.

Estaríamos usando una lista de lenguajes de programación como ejemplo para este ejercicio: (C++, Java, PHP, jQuery).

Varias casillas de verificación usando matrices con HTML y PHP

Si observamos nuestro entorno encontramos páginas que nos piden que escojan lo que nos fascina, por ejemplo, Facebook, entre otros portales. Ahora despejaremos las dudas de como procesar esas alternativas mediante el uso de las casillas y array con PHP.
La casilla de verificación (CheckBox) en HTML está diseñada para enviar al servidor sólo las entradas marcadas por el usuario. Por lo tanto, esto significa que sólo los intereses comprobados se recibirían en la matriz PHP (POST/GET).

Obtener valores de múltiples CheckBox seleccionadas con PHP

A continuación, veremos dos formas para lograr nuestro objetivo.

a) Primera forma: Atributo de nombre diferente:

Puede nombrar cada CheckBox de entrada por su nombre distinto, veamos un ejemplo:

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

<label class="heading">Seleccione su lenguaje favorito:</label>
<div class="checkbox">
  <label><input type="checkbox" name="C" value="C++">C++</label>
</div>
<div class="checkbox"> 
  <label><input type="checkbox" name="java" value="Java">Java</label>
</div>
<div class="checkbox">
  <label><input type="checkbox" name="PHP" value="PHP">PHP</label>
</div> 
<div class="checkbox">
  <label><input type="checkbox" name="jquery" value="jquery">JQUERY</label>
</div> 
<button type="submit" class="btn btn-primary" name="enviar">Enviar Información</button>
</form>

Procesamiento en PHP

<?php
if(isset($_POST["enviar"])) //Boton procesar
{
    if(isset($_POST["C"]))
        echo $_POST["C"];
     
    if(isset($_POST["java"]))
        echo $_POST["java"];
         
    if(isset($_POST["php"]))
        echo $_POST["php"];
     
    if(isset($_POST["jquery"]))
        echo $_POST["jquery"];
}
?>

Explicación del código anterior

Si bien, hemos visto en este método las etiquetas de tipo CheckBox deben de tener diferentes nombres, solo así funcionara correctamente. Sin embargo, haciendo uso del PHP tenemos que comprobar si esta opción está marcada o no a través de condicionales tipo (IF ELSE) y posteriormente obtener los valores marcados.

Supongamos que hay 100 alternativas disponibles para que el usuario pueda elegir, y el usuario eligió sólo una alternativa. La programación tendría que probar para 100 variables para recuperar sólo un valor. Por lo tanto, esta alternativa no es la más saludable.

b) Segunda forma: Agrupar los intereses en matrices indizadas.

Puede agrupar lógicamente los intereses manipulando el atributo de nombre de cada casilla de verificación. Los inputs tipo CheckBox vacíos permiten que el formulario envíe elementos sin nombre al servidor. Por lo tanto, esta estrategia permite que PHP forme su propio índice para el array recién creado.

Nota: Un dato importante, debemos recordar que el valor del atributo name de un CheckBox se convierte en una matriz.

En este tutorial, nuestra meta es obtener valores de varias casillas de verificación comprobados utilizando PHP array.

Para obtener el valor de una casilla de verificación activada:

<form action="#" method="post">
<input type="checkbox" name="genero" value="Hombre">Hombre</input>
<input type="checkbox" name="genero" value="Mujer">Mujer</input>
<input type="submit" name="submit" value="Enviar"/>
</form>
<?php
if (isset($_POST['genero'])){
echo $_POST['genero']; // Muestra el valor de la casilla de verificación marcada.
}
?>

Para obtener el valor de varias casillas de verificación comprobadas, el atributo name en HTML input type=”checkbox” debe inicializarse con una matriz, para hacer esta escritura [] al final del atributo name:

<form action="#" method="post">
<input type="checkbox" name="check_list[]" value="C/C++"><label>C++</label><br/>
<input type="checkbox" name="check_list[]" value="Java"><label>Java</label><br/>
<input type="checkbox" name="check_list[]" value="PHP"><label>PHP</label><br/>
<input type="checkbox" name="check_list[]" value="jQuery"><label>jQuery</label><br/>
<input type="submit" name="submit" value="Enviar"/>
</form>
<?php
if(isset($_POST['submit'])){//Para ejecutar PHP script en Submit
if(!empty($_POST['check_list'])){
// Bucle para almacenar y mostrar los valores de la casilla de verificación comprobación individual.
foreach($_POST['check_list'] as $selected){
echo $selected."</br>";
}
}
}
?>

En nuestro ejemplo, existe un formulario que contiene algunas casillas de verificación, el usuario las comprueba y cuando presiona el botón Enviar, se mostrarán varios valores de las casillas de verificación.

Vea nuestra demostración en vivo o descargue nuestros códigos para usarlo.

Obtener valores de multiples CheckBox
Obtener valores de multiples CheckBox

Conclusión:

Una vez que haya obtenido el valor de las casillas de verificación marcadas, también puede realizar operaciones CRUD (Crear, Leer, Actualizar y Eliminar) en la base de datos. Espero que les guste, sigan leyendo nuestros otros blogs.

1 comentario en “Obtener valores de multiples CheckBox marcadas con PHP”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio