使用 Perl CGI 从选择元素中获取文本,而不是值



给定一个HTML表单:

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

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

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

这是不可能的。该信息不会传输。浏览器仅将fruit=1放入其创建的 HTTP 请求中。你的Perl程序没有办法获得这些信息。它根本不存在。

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

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

如果你无法控制页面,你也可以让你的Perl程序获取包含表单的同一页面并解析它,以查找1的含义。不过,这听起来效率很低。查看 HTML::TreeBuilder 以获取解析 HTML 的标准方法。

最新更新