Как заменить невидимые пары имя-значение (из переключателей) в моем CGI-скрипте? - PullRequest
3 голосов
/ 21 июня 2011

Крест из PerlMonks, см. Внизу.

ОБНОВЛЕНИЕ: Возможно, лучший способ сделать это через HTML или JavaScript (я ничего не знаю об этом)?

Цель

После запуска всего кода и выдачи вывода я хотел бы предоставить гиперссылку для повторного запуска кода с тем же поисковым словом, но нажатыми разные радиокнопки.

Вот часть моего CGI-скрипта, связанная с пользовательским вводом:

my $search_key  = param('query');
my $c_verb      = param('verb_only'); 
my $c_enabling  = param('enabling'); 
my $c_subject   = param('subject');
my $c_object    = param('object'); 
my $c_prep      = param('prep'); 
my $c_adj       = param('adjective');
my $c_modnoun   = param('modnoun');

my $category_id;


if ($c_verb eq 'on')
    {
    if ($c_enabling eq 'on')
        {$category_id = 'xcomp';}
    elsif ($c_subject eq 'on')
        {$category_id = 'subj';}
    elsif ($c_object eq 'on')
        {$category_id = 'obj';}
    elsif ($c_prep eq 'on')
        {$category_id = 'prep';}

У меня нет доступа к HTML, но после просмотра исходного кода все $c_... имеютформа: <input type="checkbox" name="verb_only" onClick="ch...

«Невидимое» в заголовке относится к отсутствующим парам имя / имя тега, поэтому я не знаю, что изменить. Где я могу найти эту информацию?

Я думал об изменении $c_enabling на $c_subject и еще одной ссылке на случай, когда было выбрано $c_prep от пользователя.Есть ли способ заменить пары имя-значение этого единственного параметра?(Таким образом, параметры пользовательского ввода запускаются, вместо того, чтобы возвращаться к вводу других, просто щелкните гиперссылку, поскольку некоторые параметры остаются прежними)

URL-адрес формы имеет вид: http://concept.whatever.com/test.html, и результат находится наURL: http://concept.whatever.com/cgi-bin/search2011.cgi

Моя попытка

См. опубликованный ответ

ОБНОВЛЕНИЕ: Я пытался `url (-query), но ничего не былодобавлен до конца ...

Спасибо за любой совет.Дайте мне знать, если это не ясно.

Оригинал: http://www.perlmonks.org/?node_id=910616.... В частности, применяя этот совет: http://www.perlmonks.org/?node_id=910630

1 Ответ

0 голосов
/ 22 июня 2011

Если метод HTML изменяется на GET вместо POST: <form name="search_option" action="http://localhost/cgi-bin/mytestsearch2011.cgi" method="get">

Затем можно просмотреть теги (мне пришлось скопировать исходный код и сделать это на моем локальном хосте, чтобы проверить их)

Мне удалось выяснить, какие теги и значения ставить, используя метод b / c get.Итак, вот рабочий код:

if ($category_id  eq "xcomp") {
    my $subjurl = "http://localhost/cgi-bin/mytestsearch2011.cgi?query=$search_key&verb_only=on&subject=on&exclude0=&exclude1=&exclude2=&exclude3=";
    print qq(<A HREF="$subjurl">Subject</A>\n)."    ";
    my $objurl = "http://localhost/cgi-bin/mytestsearch2011.cgi?query=$search_key&verb_only=on&object=on&exclude0=&exclude1=&exclude2=&exclude3=";
    print qq(<A HREF="$objurl">Object</A>\n)."  ";
    my $prepurl = "http://localhost/cgi-bin/mytestsearch2011.cgi?query=$search_key&verb_only=on&prep=on&exclude0=&exclude1=&exclude2=&exclude3=";
    print qq(<A HREF="$prepurl">Preposition</A>\n)."<br><br>";
}

elsif ($category_id  eq "subj") { ##List urls other than what is currently output:
    my $enablingurl = "http://localhost/cgi-bin/mytestsearch2011.cgi?query=$search_key&verb_only=on&enabling=on&exclude0=&exclude1=&exclude2=&exclude3=";
    print qq(<A HREF="$enablingurl">Enabling Function</A>\n)."  ";
...

Я не понимаю все теги исключения, но ничего страшного ...

ОБНОВЛЕНИЕ: Это работает и с POST, мне просто нужнознать все теги, которые пришли после URL.Спасибо!

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