47

如何在 PHP 中检查 a 是否checkbox被检查?

4

5 回答 5

72

如果复选框被选中,那么复选框的值将被传递。否则,该字段不会在 HTTP 帖子中传递。

if (isset($_POST['mycheckbox'])) {
    echo "checked!";
}
于 2010-02-15T21:06:24.697 回答
29

您可以通过isset()empty()(其检查显式 isset)检查是否选中天气复选框

例如

  <input type='checkbox' name='Mary' value='2' id='checkbox' />

在这里你可以检查

if (isset($_POST['Mary'])) {
    echo "checked!";
}

或者

if (!empty($_POST['Mary'])) {
    echo "checked!";
}

如果你想做很多比你可以做一个数组而不是为所有复选框单独写,上面将只检查一个

<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] ). " ";
    }
  }
于 2012-12-04T18:26:09.300 回答
9

尝试这个

索引.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>

表单.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>

或这个

<?php
    if(isset($_POST['like'])) && 
    $_POST['like'] == 'Yes') 
    {
        echo "You like Stackoverflow.";
    }
    else
    {
        echo "You don't like Stackoverflow.";
    }   
?>
于 2010-02-15T21:06:47.623 回答
6

如果您不知道您的页面有哪些复选框(例如:如果您正在动态创建它们),您可以简单地在复选框上方放置一个具有相同名称和 0 值的隐藏字段。

<input type="hidden" name="foo" value="0" />
<input type="checkbox" name="foo" value="1">

这样,您将根据复选框是否被选中而获得 1 或 0。

于 2015-07-24T04:02:29.640 回答
1

我喜欢短手,所以:

$isChecked = isset($_POST['myCheckbox']) ? "yes" : "no";
于 2017-07-17T21:00:51.820 回答