2010-03-30 1 views
0

내 CGI 스크립트에서이 오류를 얻을 :왜 Perl의 CGI :: FormBuilder가 '선택 항목에 대해 지정된 옵션 없음'에 대해 불평하지 않습니까?

my_circle.pl이 : [FormBuilder] 경고 : 지하철 : 지정된 옵션 없음이 /home/ecoopr/ecoopr.com/CPAN/CGI/에서 필드를 '선택' FormBuilder.pm 라인 1407, referer : http://kkarnam.ecoopr.dyndns.org:880/home.pl

문제점은 무엇입니까?

+0

도움이 될만한 정보가 더 필요합니다. – lexu

+0

이것은 오류는 아니지만 경고 메시지입니다. 문제는 '선택'필드 *에 대해 지정된 옵션이 없습니다. 'my_circle.pl'은'CGI :: FormBuilder'를 잘못 사용하고있는 것 같습니다. @lexu가 지적했듯이 문제 해결을위한 충분한 정보가 게시물에 없습니다. –

답변

1

오류 메시지에 따르면 옵션을 지정하지 않고 select 양식 위젯을 구성하려고 시도했을 수 있습니다.

CGI::FormBuilder의 해당 부분이 무엇을 유발하는지 알아보십시오. Carp::Always과 같은 것을 사용하면 모든 오류와 경고를 스택 추적으로 바꿀 수 있으므로 문제를 시작한 코드 줄로 돌아갈 수 있습니다.

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   }; 
+0

답장을 보내 주셔서 감사합니다.>이 문제를 해결할 수있었습니다. 그것은 실제로 다른 곳에서 오류가 발생했다는 경고였습니다. – kiran

+0

다른 사람들이 문제에 대해 설명 할 수 있도록 문제에 대한 설명을 제공 할 수 있습니다. –

0

하는 것은 선택에 대해 정의 된 어떤 옵션이 있는지 확인하십시오 :

관련 코드는 당신이 select에 대한 몇 가지 옵션을 제공 할 것으로 예상처럼 보이는 prepare 방법 익명 해시 건설입니다. @dept_options 배열이 비어있는 경우 CGI::FormBuilder 경고를 발행합니다,

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

:
예를 들어,이 양식 필드 정의를 고려하십시오.

+0

그래 .. 알았어. 실제로 JS는 옵션 배열을로드 할 때 기본 one.Th JS 함수를 지정하지 않았으므로 페이지가로드 된 후 호출되었습니다. 즉, 드롭 다운 변경시 기본값이 없으므로 호출되었습니다. 답장을 보내 주셔서 감사합니다. 정말 유용했습니다. – kiran