是否选中了复选框?

时间:2016-05-02 15:25:09

标签: php forms

需要严肃的帮助!

<?php
$php1 = !isset($_GET['php1']);
$php2 = !isset($_GET['php2']);
$php3 = !isset($_GET['php3']);
$php4 = !isset($_GET['php4']);
$php5 = !isset($_GET['php5']);

  if ($php1 == 'one' && $php2 == 'two' && $php5 == 'five') {
    echo "<h2>R</h2>WRONG";
  } else {
    echo "<h2>R</h2>CORRECT";
  }
?>

HTML

<form action="One.php" method="get">
  <input type="checkbox" name="php1" value="one"> q1<br>
  <input type="checkbox" name="php2" value="two"> q1<br>
  <input type="checkbox" name="php3" value="three"> q1<br>
  <input type="checkbox" name="php4" value="four"> q1<br>
  <input type="checkbox" name="php5" value="five"> q1<br>
  <br>
  <input type="submit" value="Send!">
</form>

如果所有复选框都为空,则会显示一条消息。我该怎么做?

如果我不检查任何方框,它会告诉我答案是正确的。那是错的。

3 个答案:

答案 0 :(得分:2)

您必须记住,浏览器甚至不会将UN-CHECKED复选框发送到PHP脚本$_POST / $_GET

因此通常只需要知道。

首先,您必须检查它们是否已传递给脚本然后检查其值,否则您将收到未被用户检查的每个复选框的undefined index错误

if (isset($_GET['php1']) && $_GET['php1'] != '' ) {

虽然名为php1的复选框只能设置为您提供的值,但可以假设其值,而您需要做的只是

if (isset($_GET['php1']) ) {
    // php1 was checked

同样isset()将使用AND测试多个变量存在。所以你可以把你的代码写成

if ( isset($_GET['php1'], $_GET['php2'], $_GET['php5']) ) {
    echo "<h2>Resultat</h2>Du svarade rätt på frågan";
} else {
    echo "<h2>Resultat</h2>Du svarade fel på frågan";
}

答案 1 :(得分:1)

<?php
If(isset($_GET['php1'])){
  $php1 = 1;
}else{
  $php1 = 0;
}
If(isset($_GET['php2'])){
  $php2 = 1;
}else{
  $php2 = 0;
}
If(isset($_GET['php3'])){
  $php3 = 1;
}else{
  $php3 = 0;
}
If(isset($_GET['php4'])){
  $php4 = 1;
}else{
  $php4 = 0;
}
If(isset($_GET['php5'])){
  $php5 = 1;
}else{
  $php5 = 0;
}    

if ($php1 && $php2 && $php5) {
   echo "<h2>Resultat</h2>Du svarade rätt på frågan";
} else {
   echo "<h2>Resultat</h2>Du svarade fel på frågan";
}

试试这个。

每个php变量的值为1或0(true / false)。因此if if只需要检查它是否。

答案 2 :(得分:0)

$php1 = !isset($_GET['php1']);

这意味着$ php1为true或false。如果你想要php1 get参数的值,那么删除isset cover,只需

$_GET['php1'];

isset用于检查变量是否存在之后使用$ _GET ['php1'];