Pergunta

Como faço para ver o php se um checkbox é verificado ou não?

Foi útil?

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";
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top