使用Perl CGI从select元素中获取文本而不是值?

时间:2017-03-19 20:11:19

标签: perl drop-down-menu cgi

给出HTML表单:

<select name="fruit">
<option value="1">Apple</option>
<option value="2">Banana</option>
</select>

假设用户选择第二个选项并提交表单。在Perl CGI应用程序中,我可以通过调用2来获取所选值param('fruit')。如何获取所选标签Banana

我一直在网上搜索一个小时,但找不到答案。

1 个答案:

答案 0 :(得分:3)

那是不可能的。该信息不会传输。浏览器仅将fruit=1放入其创建的HTTP请求中。您的Perl程序无法获取此信息。它根本就不存在。

通常,Perl程序会控制在这种情况下什么值意味着什么。您的程序中会有一个匹配的设置知道1 Apple 2 Banana

您必须更改value属性。也许像1|Banana之类的东西,保留1,以防其他地方需要它。在这种情况下,管道|是任意的,我只是选择它,因为您的数据似乎不包含这样的字符。

如果您无法控制页面,您还可以使Perl程序获取包含表单的同一页面并对其进行解析,以查找1的含义。但这听起来效率很低。查看HTML::TreeBuilder以获取解析HTML的标准方法。