viernes, 21 de junio de 2013

Controlar array de checkbox con jquery y php


En el siguiente ejemplo vamos a ver un problema muy común en el desarrollo de formularios, a veces nos encontramos que ese problema se convierte en un array de checkboxs, que tienen el mismo name y tenemos que averiguar cual es su estado "true" "false" y por supuesto su valor, en este ejemplo obtendremos los valores de los checkbox que se encuentren en el estado "true" activados.

El proceso de comprobación tendrá dos partes, una será gestionada por jquery, que comprobará si el estado de alguno de los checkboxs está activado, posteriormente, pasaremos a enviar dichos valores a través de post para que PHP también analice dicho array de valores.

El html es bastante sencillo: una array con 3 elementos checkbox con nombre "check" y un valor distinto para cada uno de ellos y un input button ...

<form method="post" id="form">
<input type="checkbox" name="check[0]" value="uno">
<input type="checkbox" name="check[1]" value="dos">
<input type="checkbox" name="check[2]" value="tres">
<input type="button" value="Enviar Array" id="btn">
</form>


Ahora en el head del documento se hace uso de jquery, para que haga lo que se comentó anteriormente, devolverá una alerta con el valor de los checkbox activos y enviará el formulario ...

<script>
$(function()
{
$("#btn").click(function()
{
$(":checkbox[name=check]").each(function(index)
{
if ($(this).is(":checked"))
{
alert($(this).val());
}
});
$("#form").submit();
});
});
</script>


Y finalmente, pondremos el siguiente código PHP al principio del documento que recibirá los valores de los checkboxs activos ...

<?php
if(isset($_POST["check"]))
{
foreach($_POST["check"] as $campo => $valor)
{
echo "Valor devuelto por el array: $valor</br>";
}
}
?>


Controlar array de checkbox con jquery y php
Controlar array de checkbox con jquery y php