为什么我的数据始终为真,并且复选框始终返回“是”?

时间:2018-10-19 09:19:50

标签: php mysql post

$data始终为true,复选框始终返回"YES"。如何解决这个问题?

function yesNo($data){
    if($data){
        return "YES";
    }else{
        return "NO";
    }
}

此处的复选框:

$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);
}

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>

2 个答案:

答案 0 :(得分:6)

如我所见,您正在$data变量中传递一些值。而且,如果IF条件将其视为一个值,则IF语句中的任何内容都将被视为TRUE。

复选框将返回值YESNOYES的复选框NOIF statement的值始终为TRUE。

只需更改为:

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

假设您具有以下复选框字段:

<input type="checkbox" name="check_yes" value="yes" />
<input type="checkbox" name="check_no" value="no" />

您将收到复选框值为yesno。请在此处输入您的复选框字段,或写下您为其指定的值。

更新的答案::如果选中了复选框,则将获得复选框值,如果没有,则$_POST$_GET数据数组中不存在复选框名称。 如我所见,您没有提供复选框的名称和值。因此,根据您的情况,复选框名称和值在$_POST$_GET数据数组中不存在。

The best example of how to use checkboxes in PHP

答案 1 :(得分:0)

如果您的代码未显示任何错误,则意味着您的复选框始终在传递一些值以进行发布。您应该先检查发布索引是否已设置

yesNo( isset($_POST['indywidualne']) )