检查字段数组是否为空


Check if a field array is empty?

我想如果值字段txtname是空的回声It is ok,但它不工作在我的代码(如果字段是空的,点击按钮,你看到输出与print_r(...)),请参阅我的演示和我的代码。我该怎么办?

演示:

http://codepad.viper - 7. - com/fnwcis

<form method="post">
    <input name="txtname[]">
    <button>Click Me</button>
</form>
<?php
    if ($_POST) {
        $txtname = $_POST['txtname'];
        if (!empty($txtname)) {
            echo '<pre>';
            print_r($txtname); // Output this is: Array ( [0] => )
        } else {
            echo 'it is ok';
        }
    } 
?>

$txtname or ($_POST['txtname'])是一个只有一个元素的数组。即使该元素为空,对于任何包含一个或多个元素的数组,empty()返回TRUE

这应该可以解释你的代码的行为。

要实现您正在寻找的,更改HTML:

来自:

<input name="txtname[]">

:

<input name="txtname">

如果你不使用括号,它将是一个字符串。如果empty为空,则返回FALSE。参见《PHP手册》。

将输入字段名称更改为如下所示的txtname

<input name="txtname">

或者如果你想使用数组的文本框试试下面的代码。

<form method="post">
    <input name="txtname[]">
    <input name="txtname[]">
    <input name="txtname[]">
    <button>Click Me</button>
</form>
<?php
    if($_POST){
        $txtname       = $_POST['txtname'];
            foreach($txtname   as $key=>$value)
            {
                if(!empty($value)){
                    echo '<br>'.$value; // Output this is: Array ( [0] => )
                }else{
                    echo '<br>it is ok';
                }
            }
    }
?>

如果您不打算将一个值传递给变量$txtname

,则可以这样尝试。

'

    $txtname       = $_POST['txtname'];
    if($txtname[0]){
        echo '<pre>';
                print_r($txtname); // Output this is: Array ( [0] => )
            }else{
                echo 'it is ok';
            }
}

?> "