我嘗試popup_menu選擇與if/else。但它不適用於if/else。Perl Popup_Menu選擇
工作流程選擇或任務類型隨不同的列表而變化。
工作流程組或Tasktyp爲類型:
my %datatype = (
'workflow_group' => 'Workflow Group',
'tasktype_group' => 'TaskType',
);
工作流程組或任務類型爲值:
my %workflow_group = (
'one' => 'Contract',
'two' => 'Exchange',
'three' => 'Delivery',
'four' => 'Event',
);
my %tasktype_group = (
'one' => 'Contract',
'two' => 'Router',
'three' => 'DocSender',
'four' => 'Transformer',
);
腳本變量(如果/其他):
print "<TR>";
print $lqcgi->td({-width=>'10%',},
$lqcgi->h3('Type'),
$lqcgi->popup_menu(-name=>'type',
-values=>[qw/workflow_group tasktype_group/],
-labels=>\%datatype,
-default=>'type_select'));
my $types = $lqcgi->param('Workflow Group');
print "<TD><h3>Value</h3>";
if ($types){
print $lqcgi->popup_menu(-name=>'value',
-values=>[qw/one two three four/],
-labels=>\%workflow_group,
-default=>'workflow'),
$lqcgi->submit(-type => 'tasktype_start_command', -value => 'Start', -onclick => 'javascript:()'),
$lqcgi->submit(-type => 'tasktype_stop_command', -value => 'Stop', -onclick => 'javascript:()');
}
else{
print $lqcgi->popup_menu(-name=>'value',
-values=>[qw/one two three four/],
-labels=>\%tasktype_group,
-default=>'tasktype'),
$lqcgi->submit(-type => 'tasktype_start_command', -value => 'Start', -onclick => 'javascript:()'),
$lqcgi->submit(-type => 'tasktype_stop_command', -value => 'Stop', -onclick => 'javascript:()');
}
print "</TD></TR>";
注意:foreach my $type(@types)
,if (exists $types{$type})
, if (defined $types{$type}
不工作!感謝您的幫助!
這裏是找錯了:
您的代碼有幾個問題。我不完全明白你想要做什麼。 '@types eq'Workflow Group''不符合你的想法。它在標量上下文中評估'@ types',所以如果該數組中有一個元素,則它變爲'1'。 '1 eq'工作流組'是錯誤的。 – simbabque
@simbabque如果我在工作流組中使用列表中的'%dataworkflow_group'或列表中的'%tasktype_group'的'Tasktype'。 '1 eq'工作流程組''不起作用。我嘗試'如果(存在$ types {$ type})'或'if(未定義的$ types {$ type})',但那兩者都不起作用。 – Markus
請編輯您的問題並修復代碼中的拼寫錯誤。有分號和逗號混在一起,不清楚這是否是問題的一部分,或者只是在複製/粘貼時發生錯誤。顯示你的_real code_。 – simbabque