Как прочитать несколько флажков в PERL-CGI - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть форма с несколькими флажками (Все, что применимо), и я пытаюсь прочитать все выбранные значения .... пользователь нажимает кнопку «Отправить», он перезагружает страницу и проверяет «пост», и если это новыйзапись .... но она читает только первое выбранное значение, и я не знаю, что я делаю не так; /

<label class="checkbox-inline"><input type="checkbox" name="sections" value="Cars">Cars</label>
<label class="checkbox-inline"><input type="checkbox" name="sections" value="Trucks">Trucks</label>
<label class="checkbox-inline"><input type="checkbox" name="sections" value="Airplanes">Airplanes</label>
<label class="checkbox-inline"><input type="checkbox" name="sections" value="Cell Phones">Cell Phones</label> 

sub post
{ 
  if($id1 == 'active')
  my @sections = $POST->{sections}->[0];

}

1 Ответ

0 голосов
/ 18 февраля 2019

В вашем коде есть несколько очевидных проблем.

  1. Вы используете ==, когда пытаетесь выполнить сравнение строк.Вместо этого используйте eq.
  2. Ваш синтаксис if неверен.В Perl вам нужно использовать фигурные скобки - if (...) { ... }.
  3. Вы явно запрашиваете первый элемент из массива флажков.Вам нужно @{ $POST->{sections} }, чтобы получить все значения.

Итак, в целом ваша подпрограмма, вероятно, должна выглядеть так:

sub post
{ 
  if ($id1 eq 'active') {
    my @sections = @{ $POST->{sections} };
    # Do something else with @sections
  }
}

Кроме того, я бы спросилавам серьезно пересмотреть использование CGI в 2019 году. Пожалуйста, прочитайте CGI :: Альтернативы и подумайте об использовании более современных технологий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...