给定一个HTML表单:
<select name="fruit">
<option value="1">Apple</option>
<option value="2">Banana</option>
</select>
假设用户选择第二个选项并提交表单。在Perl CGI应用程序中,我可以通过调用param('fruit')
来获取选择的值,2
。Banana
,我如何获得所选标签?
我已经在网上搜索了一个小时,但找不到答案。
这是不可能的。该信息不会传输。浏览器仅将fruit=1
放入其创建的 HTTP 请求中。你的Perl程序没有办法获得这些信息。它根本不存在。
通常,Perl程序会控制在这种情况下什么值意味着什么。您将在程序中设置一个匹配设置,知道1
是Apple,2
是Banana。
您必须更改value
属性。也许像1|Banana
这样的东西,以保留1
以防其他地方需要它。在这种情况下,管道|
是任意的,我只是选择了它,因为您的数据似乎不包含这样的字符。
如果你无法控制页面,你也可以让你的Perl程序获取包含表单的同一页面并解析它,以查找1
的含义。不过,这听起来效率很低。查看 HTML::TreeBuilder 以获取解析 HTML 的标准方法。