【问题标题】:Check if a field array is empty?检查字段数组是否为空?
【发布时间】:2011-11-05 09:37:52
【问题描述】:

如果值字段 txtname 为空 echo 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';
        }
    } 
?>

【问题讨论】:

标签: php arrays


【解决方案1】:

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

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

要实现您的目标,请更改 HTML:

发件人:

<input name="txtname[]">

收件人:

<input name="txtname">

如果你不使用括号,它将是一个字符串。如果empty 为空,则FALSE 将返回。见Variables From External Sources PHP Manual

【讨论】:

    【解决方案2】:

    将输入字段名称更改为 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';
                    }
                }
        }
    ?>
    

    【讨论】:

      【解决方案3】:

      如果你不打算将一个值传递给变量 $txtname,你可以试试这种方法

      `

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

      ?>`

      【讨论】:

        猜你喜欢
        • 2018-12-02
        • 1970-01-01
        • 2018-09-29
        • 2012-02-21
        • 2011-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多