Как обрабатывать несколько флажков в форме PHP?

У меня есть несколько флажков в моей форме:

<input type="checkbox" name="animal" value="Cat" />
<input type="checkbox" name="animal" value="Dog" />
<input type="checkbox" name="animal" value="Bear" />

Если я проверил все три и нажал submit, со следующим кодом в PHP script:

if(isset($_POST['submit']) {
   echo $_POST['animal'];
}

Я получаю "Медведь", т.е. последнее выбранное значение флажка, хотя я выбрал все три. Как получить все 3?

Ответ 1

См. изменения, внесенные мной в имя:

<input type="checkbox" name="animal[]" value="Cat" />
<input type="checkbox" name="animal[]" value="Dog" />
<input type="checkbox" name="animal[]" value="Bear" />

вам нужно настроить его как массив.

print_r($_POST['animal']);

Ответ 2

<input type="checkbox" name="animal[]" value="Cat" />
<input type="checkbox" name="animal[]" value="Dog" />
<input type="checkbox" name="animal[]" value="Bear" />

Если я проверил все три и нажал submit, со следующим кодом в PHP script:

if(isset($_POST['animal'])){
    foreach($_POST['animal'] as $animal){
        echo $animal;
    }
}

Ответ 3

используйте квадратные скобки после имени поля

<input type="checkbox" name="animal[]" value="Cat" />
<input type="checkbox" name="animal[]" value="Dog" />
<input type="checkbox" name="animal[]" value="Bear" />

На стороне PHP вы можете рассматривать его как любой другой массив.