如何查看选中了哪个复选框?

Posted

技术标签:

【中文标题】如何查看选中了哪个复选框?【英文标题】:How do I see which checkbox is checked? 【发布时间】:2011-01-17 03:42:12 【问题描述】:

我如何在 php 中检查 checkbox 是否被检查?

【问题讨论】:

http://www.html-form-guide.com/php-form/php-form-checkbox.html 这包括复选框和复选框组。 【参考方案1】:

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

if (isset($_POST['mycheckbox'])) 
    echo "checked!";

【讨论】:

如果 checkbox 被选中,然后取消选中然后提交表单,这是否有效? 是的,浏览器只发送复选框处于的状态,当用户点击提交按钮时,复选框被选中或取消选中多少次无关紧要。 谢谢。 ASP.NET MVC 处理它的方式不同,所以我认为它在PHP 中是相似的,但看起来不是。 :)【参考方案2】:

您可以通过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] ). " ";
    
  

【讨论】:

如何使它只能从多个复选框中选中一个复选框并将其插入数据库? insert into table_name (choice) VALUES ('$aDoor') @AlKush 使用单选框 ;) 谢谢。是的,我决定使用单选按钮。但是如何使它成为必需的。例如。我有三个尚未选中的单选按钮。但我想提醒用户,他们必须选择其中之一。 只需检查天气是否设置与 isset ex。 if(isset($_POST['radio_buttonname']))【参考方案3】:

试试这个

index.html

<form action="form.php" method="post">
    Do you like ***?
    <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 ***.<h1>";
    
    else
    
        echo "<h1>You don't like ***.</h1>";
       
?>

</body>
</html>

或者这个

<?php
    if(isset($_POST['like'])) && 
    $_POST['like'] == 'Yes') 
    
        echo "You like ***.";
    
    else
    
        echo "You don't like ***.";
       
?>

【讨论】:

【参考方案4】:

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

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

这样你会得到 1 或 0 取决于复选框是否被选中。

【讨论】:

【参考方案5】:

我非常喜欢短手:

$isChecked = isset($_POST['myCheckbox']) ? "yes" : "no";

【讨论】:

以上是关于如何查看选中了哪个复选框?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery查看是不是选中了任何复选框

java中如何判断是哪个单选框被选中了?

Laravel 4,如何测试复选框是不是被选中?

WPF 如何判断哪个radioButton被选中

如何实现Jquery复选框选中全部/取消选中带有复选框的所有功能?

如何识别复选框是不是选中了ajax? [复制]