Регистрационная форма HTML - Массив не считается пустым () - PullRequest
0 голосов
/ 18 декабря 2018

Heyo новичок в PHP здесь,

Я создаю регистрационную форму, где пользователь может выбрать, сколько членов семьи в семье, В зависимости от выбранного числа, одинаковое количество полей будетсоздан, чтобы позволить им вводить данные членов семьи.

Форма проверяет, все ли сообщения об ошибках пусты, прежде чем начинать вставку в базу данных.

Я пытался часами, хотя все еще не уверен, чтов результате чего массив возвращается пустым () - 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 голосов
/ 18 декабря 2018

В вашем цикле

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";
}

Выходные данные:

Не пусто

Обходным путем может быть итерация по этому массиву и проверка, есть ли хотя бы 1 непустая строка.

В примере

function CheckNonEmptyValue($arr)
{
    foreach ($arr as $value)
    {
        if (!empty($value))
        {
            return (true);
        }
    }
    return (false);
}

if (CheckNonEmptyValue($MemberNameErr))
{
    echo " MEMBER ERROR NOT EMPTY ";
}

if (CheckNonEmptyValue($MemberDOBErr))
{
    echo " DOB ERROR NOT EMPTY ";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...