HTML注册表格-数组不被视为empty()

时间:2018-12-18 08:35:14

标签: php html html-form

Heyo新手使用PHP,

我正在创建一个注册表,用户可以选择一个家庭中有多少个家庭成员,根据所选的数目,将创建相同数量的字段,以允许他们输入家庭成员的详细信息。 / p>

该表格在开始数据库插入之前检查所有错误消息是否为空。

我已经尝试了几个小时,但仍然不确定是什么导致数组返回empty()-False,

完整代码- GDrive Share Link

创建数组

$MemberNameErr = array();
$MemberDOBErr = array();

根据家庭成员的数量提供数组值

for($Variable_Counter = 0; $Variable_Counter < $Family_Counter; 
$Variable_Counter++)
{
 $MemberNameErr[$Variable_Counter] = "";
 $MemberDOBErr[$Variable_Counter] = "";
}

如果该函数检查是否未发生错误

if ($FamilyNameErr == "" && $DateErr == "" && $EmailErr == "" && $PhoneErr == "" && $MobileErr == "" && empty($MemberNameErr) && empty($MemberDOBErr)) 
{

当前使用empty()作为检查数组是否为空的方法

创建这些只是为了检查数组是否不为空

if (!empty($MemberNameErr))
{
  echo " MEMBER ERROR NOT EMPTY ";  
}
if (!empty($MemberDOBErr))
{
    echo " DOB ERROR NOT EMPTY ";  
}

感谢您的所有投入。

1 个答案:

答案 0 :(得分:2)

在您的循环中

VNDetectRectanglesRequest

您正在将空字符串分配给数组的索引。这意味着该数组不再为空。

例如:

for($Variable_Counter = 0; $Variable_Counter < $Family_Counter; $Variable_Counter++)
{
    $MemberNameErr[$Variable_Counter] = "";
    $MemberDOBErr[$Variable_Counter] = "";
}

输出:

  

不为空

一种解决方法是遍历此数组并检查是否至少有一个非空字符串。

例如

$tab = array("", "", "");
if (empty($tab))
{
    echo "Empty";
}
else
{
    echo "Not empty";
}