Beitrag von hempelr (1976 Beiträge) am Montag, 3.Februar.2003, 21:08.
Verstehe den Unterschied nicht -if else - ? :
hallo,
wieso geben folgende Konstrukte, die doch eigentlich logisch gleich sind unterschiedliche Ergebnisse:
------ schnipp -----
sub _opt_min
{my $_min = ($_[0] ne "" ? $_[0] : $min); my @lz_min = (0..60); my $_a_opt_min;
my $_min = ($_[0];
foreach (@lz_min)
{ $_=(length($_)==1 ? "0$_" : $_); # fuerende Null bei einstelligen Werten einbauen (Danke Sander!)
if ($_ eq $_min)
{$_a_opt_min.="<option selected value=\"$_\">$_</option>"
}else
{$_a_opt_min.="<option value=\"$_\">$_</option>";
}
}
return ($_a_opt_min);
}
--- schnapp -----
Hier wird das Optionfeld richtig wie erwartet ausgegeben, mit dem selected auf dem übergebenen Wert, aber hier:
---schnipp ----
sub _opt_stund
my $_stund = ($_[0] ne "" ? $_[0] : $stund); my @lz_stund = (0..24); my $_a_opt_stund; # ........ Optionfeld Tageszahl ........ #
foreach (@lz_stund)
{ $_=(length($_)==1 ? "0$_" : $_); # fuerende Null bei einstelligen Werten einbauen (Danke Sander!)
($_ eq $_stund ? $_a_opt_stund.="<option selected value=\"$_\">$_</option>" : $_a_opt_stund.="<option value=\"$_\">$_</option>"); }
return ($_a_opt_stund);
}
--- schnapp ----
Hier bringt er auch ein schönes Optionfeld, aaaber - der selected Wert steht auf dem übergebenen, wie erwartet, nur ist der gleiche Wert noch mal in der Option-Liste als nicht selected. Also es stehen hier zweimal der gleiche Wert drin (erst der selected und dann der nicht selected)
Wie kommt das zustande?
Ruben