переключатель не может быть пустым

1

Это мой код для переключателя. Я хочу добавить условие, когда один переключатель не выбран пользователем, тогда он выйдет предупреждение, что данные пусты. Когда он будет завершен, он будет считать сумму.

<form action="" method="post">
Player 1:
male <input type="radio" name="gender[1]" value="1">
female <input type="radio" name="gender[1]" value="2">
<br>
Player 2:
male <input type="radio" name="gender[2]" value="1">
female <input type="radio" name="gender[2]" value="2">
<br>
Player 3:
male <input type="radio" name="gender[3]" value="1">
female <input type="radio" name="gender[3]" value="2"> 
<br>
<input type="submit" name="submit" value="submit">
</form>

<?php
if (isset($_POST['submit']))
{
    $sum=0;
    if (isset($_POST['gender']))
    {
        $gender=$_POST['gender'];
        foreach ($gender as $value)
            {
               $sum=$sum+$value;
            }
            echo $sum;

    }
    else
    {
        echo 'you did not choose any genders';
    }
}
?>
  • 0
    echo $_POST['gender'] выше if (isset($_POST['submit'])) ?
  • 0
    Я не уверен, что понимаю проблему, ваш текущий код не работает? Кроме того, отправляйтесь в тур и посмотрите :)
Показать ещё 5 комментариев
Теги:
arrays

2 ответа

0
Лучший ответ

Если выбраны все радиокнопки, count($_POST['gender']) будет 3. Так что просто замените

else
{
    echo 'you did not choose any genders';
}

с

if (count($_POST['gender']) < 3) { 
    echo 'you did not choose any genders';
}
  • 0
    подсчитать сумму еще покажу ...
  • 0
    Не count($sum) потому что это может быть где-то между 0 и 6. Вы должны сделать count($_POST['gender'])
Показать ещё 1 комментарий
0

Это просто, вы можете написать

if(!$_POST['gender']) echo ....;

или, если вы хотите проверить отдельные позиции

if(!$_POST['gender'][0] && !$_POST['gender'][1] && !$_POST['gender'][2]) echo ...;
  • 0
    что если в моем массиве пол так много, я должен написать все ??

Ещё вопросы

Сообщество Overcoder
Наверх
Меню