我从我的CGI脚本这样的错误:为什么Perl的CGI :: FormBuilder会抱怨'没有指定select的选项'?
my_circle.pl:[FormBuilder]警告:地铁:没有指定选项 '选择' 字段在/home/ecoopr/ecoopr.com/CPAN/CGI/ FormBuilder.pm line 1407,referer:http://kkarnam.ecoopr.dyndns.org:880/home.pl
你能告诉我可能是什么问题吗?
我从我的CGI脚本这样的错误:为什么Perl的CGI :: FormBuilder会抱怨'没有指定select的选项'?
my_circle.pl:[FormBuilder]警告:地铁:没有指定选项 '选择' 字段在/home/ecoopr/ecoopr.com/CPAN/CGI/ FormBuilder.pm line 1407,referer: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 };
感谢您的回复很有用>我能够解决这个问题。这实际上是一个警告,错误是在其他地方触发的。 – kiran 2010-03-31 10:09:33
也许你可以给我们一个问题的描述,以便其他人可以从中学习。 – 2010-03-31 10:11:44
确保有供选用定义一些选项。
例如,考虑这种形式的字段定义:
$form->field(
name => 'dept_id',
label => 'Dept',
type => 'select',
options => \@dept_options,
required => 1,
);
如果@dept_options数组为空,CGI::FormBuilder
会发出警告。
是的..明白了。其实我是JS加载选项数组,所以我没有指定默认值。这个JS函数在加载页面后调用,即下拉改变,所以没有默认值。 感谢您的回复,它真的很有用 – kiran 2010-03-31 10:11:37
恐怕我们需要更多的信息来帮助你。 – lexu 2010-03-30 08:31:36
这不是一个错误,而是一条警告消息。问题是*没有为'select'字段指定选项*。 'my_circle.pl'似乎错误地使用了'CGI :: FormBuilder'。正如@lexu指出的那样,您的帖子中没有足够的信息来解决您的问题。 – 2010-03-30 14:12:17