为什么我的数据总是正确,而复选框总是返回"是"?

pom*_*mor 3 php mysql post

$data总是true和复选框总是返回"YES".如何解决这个问题呢?

function yesNo($data){
    if($data){
        return "YES";
    }else{
        return "NO";
    }
}
Run Code Online (Sandbox Code Playgroud)

复选框在这里:

$txt.="Rozpoczynam dzia?alno?? gospodarcz?: ".yesNo($_POST['indywidualne'])."<br>";
if(!isset($_POST['komunikacja'])||!trim($_POST['komunikacja'])){
    $result = array( 'type' => 'error', 'code' => "podaj komunikacje");
    endSend($result);
}
$txt.="Chce rozlicza? si? w terminach kwartalnych: ".yesNo($_POST['komunikacja'])."<br>";
if(!isset($_POST['firmowe'])||!trim($_POST['firmowe'])){
    $result = array( 'type' => 'error', 'code' => "podaj rodzaj rozliczenia o");
    endSend($result);
}
$txt.="P?atnik VAT: ".yesNo($_POST['firmowe'])."<br>";
if(!isset($_POST['ewidencja'])||!trim($_POST['ewidencja'])){
    $result = array( 'type' => 'error', 'code' => "podaj email");
    endSend($result);
}
Run Code Online (Sandbox Code Playgroud)

html中的复选框:

          <label for="checkbox-vat">
              <input type="checkbox" name="" id="checkbox-vat"> P?atnik VAT
          </label>
          <label for="checkbox-activity">
              <input type="checkbox" name="" id="checkbox-activity"> Rozpoczynam dzia?alno?? gospodarcz?
          </label>
          <label for="checkbox-quarterly">
              <input type="checkbox" name="" id="checkbox-quarterly"> Chce rozlicza? si? w terminach kwartalnych
          </label>
Run Code Online (Sandbox Code Playgroud)

Guf*_*san 6

正如我所看到的,你在$data变量中传递了一些值.并且IF条件将其视为值,IF语句中的任何一个都将视为TRUE.

复选框返回值YESNO.checkbox YESNOfor的IF statement值始终为TRUE.

只需改为:

    function yesNo($data){
    // echo $data;die; //uncomment this statement to see $data value
        if(strtolower($data)=='yes'){
            return "YES";
        }else{
            return "NO";
        }
    }
Run Code Online (Sandbox Code Playgroud)

假设您有复选框字段,如下所示:

<input type="checkbox" name="check_yes" value="yes" />
<input type="checkbox" name="check_no" value="no" />
Run Code Online (Sandbox Code Playgroud)

您将收到复选框值为yesno.请将您的复选框字段放在此处或写下您为其提供的值.

更新答:如果选中该复选框,你会如果没有则复选框名称不存在中获取复选框的值$_POST$_GET数据阵列.正如我所见,你没有提供复选框的名称和价值.所以,你的情况下的复选框的名称和值不存在 $_POST$_GET数据阵列.

如何在PHP中使用复选框的最佳示例