从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
的情况。有没有办法替换那个单一参数的名称 - 值对? (因此用户输入选项,运行,而不是返回输入不同的选项,只需单击超链接,因为某些选项保持不变)
表单的网址如下:http://concept.whatever.com/test.html
,输出位于网址:http://concept.whatever.com/cgi-bin/search2011.cgi
我的尝试
见发布的答案
更新:我已经尝试了`url(-query)但是没有附加到结尾......
感谢您的任何建议。如果不清楚,请告诉我。
原文:http://www.perlmonks.org/?node_id=910616 ....特别应用此建议:http://www.perlmonks.org/?node_id=910630
答案 0 :(得分:0)
如果HTML的方法更改为GET而不是POST:
<form name="search_option" action="http://localhost/cgi-bin/mytestsearch2011.cgi" method="get">
然后可以查看标签(我必须复制源代码并在我的localhost上执行此操作以检查它们)
我能够找出要放置的标签和值,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后面的所有标签。谢谢!