所以,我在Perl中使用CGI编程是全新的。 问题很简单。有没有机会删除CGI中文本字段的内容?
我必须编写一个包含popup_menu,提交按钮和文本字段(区域)的代码。
当我点击提交按钮时,程序会从其中一个popup_menu中读取值。 任务是将此内容复制到文本字段中,然后当我从popup_menu中选择另一个元素时(当然点击提交按钮),让新内容写入文本字段替换旧文件。
我认为perldoc.perl.org只提供了一些关于CGI编程的信息。我在主题中有很多问题...... :(
任何帮助都是适当的!
答案 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] );