Ich versuche, Popup-Menü mit If/Else auswählen. Aber es funktioniert nicht mit if/else.Perl Popup_Menu Auswahl
Die Select für Workflow oder Tasktyp ändern sich mit verschiedenen Listen.
Workflow-Gruppe oder Tasktyp für Typ:
my %datatype = (
'workflow_group' => 'Workflow Group',
'tasktype_group' => 'TaskType',
);
Workflow-Gruppe oder Tasktype für Wert:
my %workflow_group = (
'one' => 'Contract',
'two' => 'Exchange',
'three' => 'Delivery',
'four' => 'Event',
);
my %tasktype_group = (
'one' => 'Contract',
'two' => 'Router',
'three' => 'DocSender',
'four' => 'Transformer',
);
Script mit Variable (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>";
Hinweis: foreach my $type(@types)
, if (exists $types{$type})
, if (defined $types{$type}
funktioniert nicht! Danke für deine Hilfe!
Hier ist falsch finden:
Es gibt ein paar Probleme mit Ihrem Code. Ich verstehe nicht ganz, was Sie zu tun versuchen. '@types eq 'Workflow Group' tut nicht, was Sie denken. Es wertet '@ types' im skalaren Kontext aus, so dass es '1' wird, wenn es ein Element in diesem Array gibt. Und '1 eq 'Workflow Group' ist falsch. – simbabque
@simbabque wenn ich bei 'Workflow Group' für'% dataflow_group' in Listen oder 'Tasktyp' für'% tasktype_group' in Listen nehme. '1 eq 'Workflow Group' funktioniert nicht. Ich versuche 'if (exists $ types {$ type})' oder 'if (nicht definierte $ types {$ type})', aber das funktioniert auch nicht. – Markus
Bitte bearbeiten Sie Ihre Frage und korrigieren Sie die Tippfehler in Ihrem Code. Es sind Semikolons und Kommas durcheinander und es ist nicht klar, ob das ein Teil des Problems ist, oder einfach ein Fehler beim Kopieren/Einfügen hier. Zeigen Sie Ihren _real Code_. – simbabque