为什么 Perl 的 CGI::FormBuilder 抱怨“没有为 select 指定选项”?

发布于 2024-08-27 01:34:19 字数 328 浏览 14 评论 0原文

我从我的 CGI 脚本中收到此错误:

my_circle.pl:[FormBuilder] 警告:metro:没有为 /home/ecoopr/ecoopr.com/CPAN/CGI/FormBuilder.pm 第 1407 行的“选择”字段指定选项,引荐来源:http://kkarnam.ecoopr.dyndns.org:880/home.pl

你能建议我什么可能是问题?

I get this error from my CGI script:

my_circle.pl: [FormBuilder] Warning: metro: No options specified for 'select' field at /home/ecoopr/ecoopr.com/CPAN/CGI/FormBuilder.pm line 1407, referer: http://kkarnam.ecoopr.dyndns.org:880/home.pl

Can you suggest me what might be the problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枫以 2024-09-03 01:34:19

正如错误消息所示,您可能正在尝试构建一个 select 表单小部件而不指定任何选项。

找出触发 CGI::FormBuilder 的该部分的原因。您可以使用类似 Carp::Always 将所有错误和警告转换为堆栈跟踪这样您就可以回到引发问题的代码行。

相关代码是 prepare 方法中的匿名哈希构造,看起来它希望您为 select 提供一些选项:

1406         # Create a struct for each field
1407         $tmplvar{field}{"$field"} = {
1408              %$field,   # gets invalid/missing/required
1409              field   => $field->tag,
1410              value   => $value[0],
1411              values  => \@value,
1412              options => [$field->options],
1413              label   => $field->label,
1414              type    => $field->type,
1415              comment => $field->comment,
1416              nameopts => $field->nameopts,
1417              cleanopts => $field->cleanopts,
1418         };

As the error message says, you are probably trying to construct a select form widget without specifying any options.

Find out what is triggering that part of CGI::FormBuilder. You can use something like Carp::Always to turn all errors and warnings into stack traces so you can work back to the line of code that started the problem.

The relevant code is the anonymous hash construction in the prepare method, which looks like its expecting you to provide some options for select:

1406         # Create a struct for each field
1407         $tmplvar{field}{"$field"} = {
1408              %$field,   # gets invalid/missing/required
1409              field   => $field->tag,
1410              value   => $value[0],
1411              values  => \@value,
1412              options => [$field->options],
1413              label   => $field->label,
1414              type    => $field->type,
1415              comment => $field->comment,
1416              nameopts => $field->nameopts,
1417              cleanopts => $field->cleanopts,
1418         };
╭⌒浅淡时光〆 2024-09-03 01:34:19

确保为选择定义了一些选项。
例如,考虑以下表单字段定义:

$form->field(
    name     => 'dept_id',
    label    => 'Dept',
    type     => 'select',
    options  => \@dept_options,
    required => 1,
);

如果 @dept_options 数组为空,CGI::FormBuilder 将发出警告。

Make sure there are some options defined for selects.
For example, consider this form field definition:

$form->field(
    name     => 'dept_id',
    label    => 'Dept',
    type     => 'select',
    options  => \@dept_options,
    required => 1,
);

If the @dept_options array is empty, CGI::FormBuilder will issue the warning.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文