Como vejo qual caixa de seleção é verificada?
Pergunta
Como faço para ver o php se um checkbox
é verificado ou não?
Solução
Se a caixa de seleção for verificada, o valor da caixa de seleção será passado. Caso contrário, o campo não será passado na postagem HTTP.
if (isset($_POST['mycheckbox'])) {
echo "checked!";
}
Outras dicas
você pode verificar isso por qualquer isset()
ou empty()
(sua caixa de seleção explícita de cheque) é verificada ou não
por exemplo
<input type='checkbox' name='Mary' value='2' id='checkbox' />
Aqui você pode verificar por
if (isset($_POST['Mary'])) {
echo "checked!";
}
ou
if (!empty($_POST['Mary'])) {
echo "checked!";
}
O exposto acima verificará apenas um, se você quiser fazer para muitos do que você pode fazer uma matriz, em vez de escrever separados para todas as caixas de seleção, tente como
<input type="checkbox" name="formDoor[]" value="A" />Acorn Building<br />
<input type="checkbox" name="formDoor[]" value="B" />Brown Hall<br />
<input type="checkbox" name="formDoor[]" value="C" />Carnegie Complex<br />
php
$aDoor = $_POST['formDoor'];
if(empty($aDoor))
{
echo("You didn't select any buildings.");
}
else
{
$N = count($aDoor);
echo("You selected $N door(s): ");
for($i=0; $i < $N; $i++)
{
echo htmlspecialchars($aDoor[$i] ). " ";
}
}
Tente isso
index.html
<form action="form.php" method="post">
Do you like stackoverflow?
<input type="checkbox" name="like" value="Yes" />
<input type="submit" name="formSubmit" value="Submit" />
</form>
form.php
<html>
<head>
</head>
<body>
<?php
if(isset($_POST['like']))
{
echo "<h1>You like Stackoverflow.<h1>";
}
else
{
echo "<h1>You don't like Stackoverflow.</h1>";
}
?>
</body>
</html>
Ou isto
<?php
if(isset($_POST['like'])) &&
$_POST['like'] == 'Yes')
{
echo "You like Stackoverflow.";
}
else
{
echo "You don't like Stackoverflow.";
}
?>
Se você não sabe qual caixa de seleção sua página possui (Ex: Se você as estiver criando dinamicamente), basta colocar um campo oculto com o mesmo nome e 0 valor logo acima da caixa de seleção.
<input type="hidden" name="foo" value="0" />
<input type="checkbox" name="foo" value="1">
Dessa forma, você obterá 1 ou 0 com base se a caixa de seleção está selecionada ou não.
Eu amo mãos curtas, então:
$isChecked = isset($_POST['myCheckbox']) ? "yes" : "no";