if/elseでpopup_menuを選択しようとしました。しかしif/elseではうまく動作しません。Perlポップアップメニュー選択
ワークフローまたはタスクタイプの選択を異なるリストで変更します。
タイプのためワークフローグループまたはTasktyp:
my %datatype = (
'workflow_group' => 'Workflow Group',
'tasktype_group' => 'TaskType',
);
価値のワークフローグループまたはTaskType属性:変数と
my %workflow_group = (
'one' => 'Contract',
'two' => 'Exchange',
'three' => 'Delivery',
'four' => 'Event',
);
my %tasktype_group = (
'one' => 'Contract',
'two' => 'Router',
'three' => 'DocSender',
'four' => 'Transformer',
);
スクリプト(IF/ELSE):
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}
が機能していません!お手伝いありがとうございます!ここで
は間違って見つけることです:あなたのコードは、実際のPerl/CGIの観点から取り組んでいるよう
コードにはいくつかの問題があります。私はあなたがしようとしていることを完全に理解していません。 '@types eq 'Workflow Group'はあなたの考えをしません。スカラコンテキストで '@ types'を評価するので、その配列に要素が1つあれば' 1 'になります。そして、 '1 eq' Workflow Group 'はfalseです。 – simbabque
@simbabqueリストの '%dataworkflow_group'の'ワークフローグループ 'を、リストの'%tasktype_group'の 'Tasktype'を取ります。 '1 eq 'Workflow Group'は動作していません。私は 'if(exists $ types {$ type})'や'if(unfined $ types {$ type}) 'を試していますが、それもうまくいきません。 – Markus
あなたの質問を編集して、コードの入力ミスを修正してください。セミコロンとカンマが混在していて、それが問題の一部であるかどうかは不明です。ここでコピー/貼り付けするとエラーが発生します。 _real_を表示する_。 – simbabque