Thread Checkbox Werteübergabe (3 answers)
Opened by Cryog3n at 2005-01-19 19:10

Dubu
 2005-01-20 13:38
#4144 #4144
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
@Cryog3n: Wenn der Benutzer das Feld angekreuzt hat, dann ist $cgi->param ("alternative") gleich 1, wenn er das nicht hat, dann ist es einfach undef, weil das Feld gar nicht erst uebertragen wird.

Wenn dir das undef nicht gefaellt, dann koenntest du deine Variable auch per Default auf 0 setzen:
Code: (dl )
my $formalternative = $cgi->param ("alternative") || 0;

Damit ist in $formalternative immer entweder der Wert aus dem Formular (also 1) oder 0.

Abgesehen davon: Es sollte so funktionieren, wie du es oben geschrieben hast, falls $alt den Wert von $formalternative hat. Leider ist der gepostete Code so unvollstaendig, dass man nicht erkennen kann, wo der Wert herkommt.

Der Code ist auch etwas unuebersichtlich (zu viel doppelt), und die zwei if-Abfragen, die sich ja eigentlich ausschliessen sollten, wirken auch komisch. Ich haette das so gemacht:
Code: (dl )
1
2
3
4
5
print q{<td><div align="right"><input style="border:none;" type="checkbox" name="alternative" value="1"};

print " checked" if $alt;

print "></div></td>\n";



@Mordur: Nee, der Code stimmt so. Wenn $alt gesetzt ist, soll nur zusaetzlich das "checked"-Attribut gesetzt werden. Der value sollte in beiden Faellen gleich sein.

View full thread Checkbox Werteübergabe