не выводит несколько флажков php

#php #html

#php #HTML

Вопрос:

У меня есть цикл, который должен печатать выбранные флажки, но он печатает только один элемент. Если выбрано несколько, печатается только последняя строка.

 if(isset($_POST['submit_courses'])){
//to run PHP script on submit
  if(!empty($_POST['boxes'])){
  // Loop to store and display values of individual checked checkbox.
  foreach($_POST['boxes'] as $selected_course);
    echo "You have selected: " . $selected_course . "</br>";
  }
}
  

$_POST['submit_courses'] используется, если нажата кнопка отправки, и $_POST['boxes'] для выбранных флажков. boxes[] это имя типа ввода для флажков.

Комментарии:

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

2. @mplungjan если я избавлюсь от этого оператора if, он по-прежнему выводит только последний выбранный

3. Измените ; на { после начала каждого foreach($_POST['boxes'] as $selected_course) { echo "You have selected: " . $selected_course . "</br>"; }

4. @mplungjan Не могу поверить, что я поставил точку с запятой после цикла for. Как я этого не заметил. Я идиот, спасибо.

5. Пожалуйста, удалите вопрос

Ответ №1:

Я думаю, что проблема здесь

 foreach($_POST['boxes'] as $selected_course);
    echo "You have selected: " . $selected_course . "</br>";
  

Измените его с помощью {}, как показано ниже

 foreach($_POST['boxes'] as $selected_course){
    echo "You have selected: " . $selected_course . "</br>";
}
  

Комментарии:

1. Вы правы. Еще одна проблема, решаемая неуместной точкой с запятой

2. @CaleighD проблема в том, что вы не используете скобки {} , и это приведет к нескольким ошибкам в вашей карьере. Пишите код с определенным стилем кодирования, и вы избежите большинства опечаток.

Ответ №2:

$_POST[‘boxes’] Должен быть массивом. Сначала вы должны проверить свой html, а затем посмотреть с помощью print_r($_POST[‘boxes’]), что находится внутри.