<?php
$resultado="";
$error="";
if(isset($_POST["checkbox"]) && $_POST["checkbox"]=="on")
{
// El checkbox se ha seleccionado correctamente
// En este punto, podemos añadir el valor a la base de datos,
// redirigir a otra página con header("location:pagina.html");
// o cualquier otra cosa.
//
// Nosotros, valor a mostrar un texto indicando que se ha recibido
// correctamente.
//
// Mantendremos el valor en la variable para dejar marcado el check
$resultado="Se han aceptado las condiciones correctamente";
}elseif(isset($_POST["enviar"])){
// En este punto, el valor de la variable $_POST["checkbox"] NO esta definida,
// ya que si no se selecciona el checkbox, no envia ningun valor.
// Para saber si hemos enviado el formulario o acabamos de entrar en la pagina
// lo hacemos mediante la comprobacion del boton del formulario ($_POST["enviar"])
//
// Lo normal es indicar que hay un error
$error="Tienes que seleccionar el check para aceptar las condiciones";
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Validar un checkbox en un formulario con PHP</title>
<style>
.error {color:red;}
.resultado {color:green;}
</style>
</head>
<body>
<h1>Validar un checkbox en un formulario con PHP</h1>
<p>Este código de ejemplo, valida que se haya seleccionado el checkbox
desde PHP</p>
<form action="<?php echo $_SERVER["SELF"]?>" method="POST">
<?php
if($error)
{
echo "<div class='error'>".$error."</div>";
}
if($resultado)
{
echo "<div class='resultado'>".$resultado."</div>";
}
?>
<input type="checkbox" id="checkbox" name="checkbox" <?php echo ($_POST["checkbox"]=="on"?"checked":"")?>> Acepto las condiciones...
<br><input type="submit" name="enviar" value="Enviar">
</form>
</body>
</html>
Comentarios sobre la versión: Versión 1 (5)