Как отобразить результат формы сценария Perl на той же веб-странице? - PullRequest
3 голосов
/ 09 декабря 2011

Я пишу простой ролик для игры в кости, и я хотел бы передать три поля формы в скрипт Perl, обработать их и вернуть результат на ту же страницу. У меня все работает, кроме того же требования к странице.

Возможно ли это?

Ответы [ 3 ]

5 голосов
/ 09 декабря 2011

Конечно. Вот скелетный код с одним полем формы.

use strict;
use warnings;
use CGI;

my $cgi = CGI->new;
my $my_param = $cgi->param('my_param');

print $cgi->header();
print $cgi->html_start();
if (param_valid($my_param)) {
    # process params and show result
    do_something($my_param);
} else {
    # display the form
    show_form($my_param);
}

print $cgi->html_end();

Обратите внимание, что при отображении (возможно, неполной) формы обычно рекомендуется включать уже заданные поля, чтобы пользователю не приходилось их повторно вводить.

3 голосов
/ 09 декабря 2011

Сделайте AJAX-вызов (в JS) вашей Perl-программе.

Пусть ваша Perl-программа красиво вернет результаты (например, JSON).

Сделайте так, чтобы ваш обработчик AJAX внес изменения на страницуна основе возвращенных данных JSON.

Если вы отбросите требование «та же страница», то предыдущие ответы будут работать (обратите внимание, что эти ответы НЕ являются «той же страницей», они просто выглядят на той же странице).Скорее всего, это самый простой способ для достижения вашей цели, но для его использования необходимо отказаться от требования «та же страница».

3 голосов
/ 09 декабря 2011

Да.Упрощенно: если параметры присутствуют, выполните обработку, если нет, отобразите страницу с полями.

 if ($q->param('field1')) {
    # Process params
 } else {
    # display fields in a form
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...