hi,
Ein CGI Skript hat nichts mit dem Browser zu tun, du hast bvermutlich ein anderes Problem.
hab ich gemerkt -> https://forum.selfhtml.org/?t=96253&m=585075
Mit dem Modul kannst du acuh einfach die HTML ausgabe erzeugen:
CGI::hidden(-name => 'rcitem-desc', -value => $itemname);
gleichzeitig werden die Felder auch automatisch ausgefüllt, d.h. hier muss i.d.R. noch nicht mal '.value' stehen.
cool :)
Und auf die Werte greifst du mit:
CGI::param('rcitem-desc');zu.
Schau dir die Doku zu dem Modul mal an, was es alles kann.
if($FORM{$rcitem-desc} eq $itemname) oder so...
Soll ich z.B.
my $rcitem-desc = $FORM{'rcitem-desc'}||'';
ganz am anfang vom script deklarieren oder erst in der sub?my deklariert eine Variabel lokal, du solltest sie dort deklarieren, wo du sie brauchst, wenn du sie im ganzen Programm an vielen Stellen brauchst kannst du sie auch im Aussnahmefall global deklarieren. Aber globale Variabel sind nicht besonders geschickt, da sie auch global verändert werden könnten und dann weiß man nie welchen Wert sie haben.
Es gibt aber auch z.b. die Möglichkeit mit packages ein Modul zu konstruieren in dem ein Variabel gültig ist. aber ich befürchte das überfordert dich.
Das script wird zur zeit so deklariert bzw. geparst
Parse form input
my %FORM = parse_form();
Get command variables
my $command = $FORM{'command'}||'';
parse form input
sub parse_form {
my %FORM;
my $query = new CGI;
my @names = $query->param;
foreach (@names){
$FORM{$_} = $query->param($_);
}
return %FORM;
}Mit CGI.pm sieht das so aus:
my $command = CGI::param('command') ||'';
mehr brauchst du nicht. Ich verstehe nicht warum du glaubst hier ein HASH zu erzeugen müssen. du kannst jederzeit im Modul auf die Werte zugreifen, wie schon gesagt am sinnvollsten dort wo sie gebraucht werden.
naja $FORM{$variable} kommt oft vor im script desshalb.
würde
my $FORM = CGI::param('FORM') ||'';
auch passen?
Grüsse
Alain