我从我的 CGI 脚本中得到这个错误:
my_circle.pl:[FormBuilder] 警告:metro:没有为 /home/ecoopr/ecoopr.com/CPAN/CGI/FormBuilder.pm 第 1407 行的“选择”字段指定选项,参考:http://kkarnam.ecoopr.dyndns .org:880/home.pl
你能建议我可能是什么问题吗?
我从我的 CGI 脚本中得到这个错误:
my_circle.pl:[FormBuilder] 警告:metro:没有为 /home/ecoopr/ecoopr.com/CPAN/CGI/FormBuilder.pm 第 1407 行的“选择”字段指定选项,参考:http://kkarnam.ecoopr.dyndns .org:880/home.pl
你能建议我可能是什么问题吗?
正如错误消息所说,您可能正在尝试构建一个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 };
确保为选择定义了一些选项。
例如,考虑这个表单字段定义:
$form->field(
name => 'dept_id',
label => 'Dept',
type => 'select',
options => \@dept_options,
required => 1,
);
如果@dept_options 数组为空,CGI::FormBuilder
将发出警告。