Perl CGI - 如何删除文本字段的内容?

时间:2012-05-10 17:52:51

标签: perl cgi fastcgi cgi-bin

所以,我在Perl中使用CGI编程是全新的。 问题很简单。有没有机会删除CGI中文本字段的内容?

我必须编写一个包含popup_menu,提交按钮和文本字段(区域)的代码。

当我点击提交按钮时,程序会从其中一个popup_menu中读取值。 任务是将此内容复制到文本字段中,然后当我从popup_menu中选择另一个元素时(当然点击提交按钮),让新内容写入文本字段替换旧文件。

我认为perldoc.perl.org只提供了一些关于CGI编程的信息。我在主题中有很多问题...... :(

任何帮助都是适当的!

1 个答案:

答案 0 :(得分:1)

我想,你所描述的是:当你点击提交按钮时,你的cgi脚本将运行,给定你在表单中输入的参数。我接下来要做的是:回写一些内容并再次打印表单 - 使用不同的值。

所以,即使这不是完成这种事情的完美方式(对于简单的表单元素替换,你应该在客户端进行并使用javascript - 你不需要cgi后端脚本),让我们看看如何一个cgi脚本可能看起来像。

首先,了解您如何撰写表单非常重要。让我们假设你用印刷品“艰难的方式”来写它。 您的脚本要做的是解析输入,然后将其作为值添加到输出中。

use CGI;
my $q = CGI->new;

# get the value from the popup / html select
my $popup_value = $q->param('popup_menu'); # name of the <select name="..."> in your html
# ...

# writing the form
print $q->header;
# some more prints with form etc.
print textarea( -name    => 'text_area',
                -default => $popup_value // '', # will use empty string on first call
              );
# Don't turn off autoescaping !

顺便说一句,选择选项的值是一个简短的指示符,而不是全文(即使这可能达到一定数量的字符)。因此,您可能会考虑构建一个散列或数组,并在文本区域中打印适当的值,并为您的选择选项提供值0,1,2 ......

my @text_values = ('', 'First text', 'second text', 'third text');
my $popup_value = $q->param('popup_menu') || 0; # default index.
# now use 1,2,3, ... as values in your popup_menu options
# ...
print textarea( -name    => 'text_area',
                -default => $text_values[$popup_value] );