CGI スクリプトから次のエラーが表示されます。
my_circle.pl: [FormBuilder] 警告: メトロ: /home/ecoopr/ecoopr.com/CPAN/CGI/FormBuilder.pm 1407 行目の 'select' フィールドにオプションが指定されていません。リファラー: http://kkarnam.ecoopr.dyndns .org:880/home.pl
何が問題なのか教えていただけますか?
CGI スクリプトから次のエラーが表示されます。
my_circle.pl: [FormBuilder] 警告: メトロ: /home/ecoopr/ecoopr.com/CPAN/CGI/FormBuilder.pm 1407 行目の 'select' フィールドにオプションが指定されていません。リファラー: 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
警告が発行されます。