在我的HTML代码中我有
<option name="PRODUCTS" value="3">Products</option>
我需要通过我的Perl CGI参数获取服务器端Perl函数中的名称和值。
我只能获得价值,有没有办法获得这个名字呢?
答案 0 :(得分:4)
<option name="PRODUCTS" value="3">Products</option>
<option>
元素没有name
属性,因此这是无效的HTML,浏览器会忽略它(除了它可能使JavaScript可用)。
提交表单后,浏览器会向服务器发送选择的名称以及所选选项的值。这是服务器将收到的唯一信息。
如果您想获得“产品”,那么您需要:
value="3-PRODUCTS"
然后my ($number, $word) = split '-', $value
3
与之相关的单词(例如,在脚本中嵌入的哈希,或者使用数据库查询)。答案 1 :(得分:0)
CGI::param()
会返回所有名称。然后CGI::param($name)
将返回给定名称的所有值。
for my $name (CGI::param()) {
for my $val (CGI::param($name)) {
print "name: $name, value: $val\n";
}
}
更新:抱歉,将“选项”误读为“输入”。选项的名称属性根本不会发送到服务器,所以如果没有html本身就没有办法告诉它是什么。但是,您可以添加javascript,以便在选择时将隐藏的输入字段设置为选项的名称。 populateCatArray做了什么?
答案 2 :(得分:0)
如果对传递的内容有一些疑问,我会使用Vars方法,特别是如果你有多次使用相同的'name'或者js通常会在页面上不存在生成元素。
use CGI;
use Data::Dumper
my $q = new CGI;
print
$q->header({ type=>'text/plain' }),
Dumper($q->Vars);