我從我的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