Schrift
[thread]3520[/thread]

checkbox



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Kathrin
 2005-01-19 10:39
#32850 #32850
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
Hi Leute,
hab mal ein kleineres Problem. Und zwar hab ich 4 checkboxen, die in die DB auch eingespeichert werden.
Jetzt wird es aber entweder mit "0"(checked) oder mit "NULL"(not checked) eingetragen.
und da ich bei der ausgabe es folgendermaßen angehe, wirds nicht korrekt wieder ausgegeben.
Code: (dl )
1
2
3
4
5
if ($check1==1) {
print '<INPUT name="check1" TYPE="checkbox" VALUE="LHB" checked>LHB'}
if ($check2==1) {
print '<INPUT name="check2" TYPE="checkbox" VALUE="LHB" checked>LFR'}
.....

und wenn ich "if ($check1==1 || $check1==0) {..." schreibe, wird es immer als checked interpretiert... Also auch "NULL"...
Relais
 2005-01-19 10:51
#32851 #32851
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn der Wert=value "LHB" heißen soll, dann mußt Du auch auf "LHB" prüfen.

$check1 eq "LHB" and print " checked";

Wichtiger Rat: Wenn Du Dein Programm so schreiben möchtest, daß Menschen, auch Du es verstehen können sollen, dann nenne Variablen nicht "$checked234" sondern sprechend:
$kunde_wuenscht_zusaetzlich_lhb oder ähnlich. Vielleicht nicht so übertrieben wie mein Beispiel :-)
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Kathrin
 2005-01-19 11:02
#32852 #32852
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
Der Wert LHB bleibt eigentlich immer konstant. Ich will eigentlich prüfen, ob die checkbox angeklickt wurde oder nicht.
wenn ich mir $check1 ausgeben lasse, steht ja entweder "0" oder "" nichts drin...
merkwürdig ist, dass in einigen Einträgen anstatt der "0" eine "1" eingetragen wurde. Bei diesen Einträgen wirds richtig wieder ausgegeben...
Nur jetzt trägt er halt ne "0" für checked ein....
Wie bring ich ihn dazu dass er immer "1" einträgt oder dass er mir auch beim nachlesen "0" als checked erkennt?


P.S.: Danke für deinen Tipp du hast recht... Ich merks mir fürs nächste mal ;-)
Kathrin
 2005-01-19 12:11
#32853 #32853
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
hmmm? hat denn keiner ne Idee?
Relais
 2005-01-19 12:17
#32854 #32854
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
gib die Variablen mal mit print aus.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Kathrin
 2005-01-19 12:25
#32855 #32855
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
Ausgabe:
für aktive checkbox wird enteder 0 oder 1 zurückgegeben. meistens aber 0.
wenn es inativ war, dann ist es leer. (NULL)
Relais
 2005-01-19 12:29
#32856 #32856
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Tja, das kann aber nicht sein. Wenn Du in einen Variable "LHB" oder nichts hineinschreibst, wird darin weder 1, 0 noch "NULL" wiederzufinden sein.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
format_c
 2005-01-19 12:35
#32857 #32857
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Es wird nicht 0 oder 1 von der checkbox übergeben sondern entweder value oder nichts oder wenn kein value definiert ist wird "on"übergeben:
Beispiel mit CGI (perldoc CGI ist die Zeit wert gelesen zu werden)
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
BEGIN {
push @ARGV,"check1=LHB"; # Simulation Parameterübergabe
}
use strict;
use CGI qw/:all/;

my $check1 = param('check1');
my $check2 = param('check2');

print STDERR "\$check1: $check1\n\$check2: $check2\n";

print checkbox(-name=>'check1',
-value=>"LHB",
-checked=> $check1 eq "LHB" ? 1 : 0,
-label=>'LHB'
),
"\n",
checkbox(-name=>'check2',
-checked=> $check2 ? 1 : 0,
-label=>'LFB'
);
_ _ END _ _
<input type="checkbox" name="check1" value="LHB" checked="checked" />LHB
<input type="checkbox" name="check2" value="on" />LFB

STDERR:
$check1: LHB
$check2:

Wenn nicht das in der Variable drin steht, würde mich mal interessieren wie du dir die Werte für $check1 und $check2 holst.

Gruß Alex
Kathrin
 2005-01-19 13:00
#32858 #32858
User since
2004-12-15
158 Artikel
BenutzerIn
[default_avatar]
bei mir kommt folgendes raus: check1: 0 check2: check3: 0 check4: identnr: 123456789 docname: 123456789_2

bei diesem eintrag hier z.B. wurde eine 0 in die DB eingetragen, bei denen die checkbox angeklickt wurde. die anderen sind leer
renee
 2005-01-19 13:13
#32859 #32859
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
probier mal:
Code: (dl )
1
2
if (defined $check1) {
print '<INPUT name="check1" TYPE="checkbox" VALUE="LHB" checked>LHB'}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2005-01-19 10:39.