Leeloo5E: Formulare: Variablenübergabe

Beitrag lesen

Hallo,

ich möchte das Problem bei mir nachstellen. Baue mir einen Testcase: verringere den Umfang deines Programms aufs Nötigste, das das Fehlverhalten noch aufzeigt, und poste den Quellcode sowie die Rahmenbedingungen.

Der minimale Code, der bei mir ebenfalls das nicht korrekte Verhalten zeigt.

  
#! /usr/bin/perl -w  
use strict;  
use DBI;  
use CGI;  
use CGI::Carp qw(fatalsToBrowser);  
my $cgi = new CGI;  
  
## Ausgabe der HTML-Seite starten ##################################  
print $cgi->header(),  
      $cgi->start_html(-title=>"Erweiterte Suche",  
                    -style=>{-src=>['stylesheets/default.css'],  
                       -media =>'screen'}),  
      $cgi->start_div({-id=>"container"}),  
                       $cgi->start_div({-id=>"liste"});  
  
### Auswertung der uebergebenden Parameter ########################  
if(defined $cgi->param('searchAdv')){  
  
    ## Testausgabe - Werte werden noch korrekt ausgegeben  
    my @Feldnamen = $cgi->param();  
  
   foreach my $Feld (@Feldnamen) {  
        print $cgi->b('Feldname: '), $Feld,  
                  $cgi->b(', Inhalt: '),  
                  $cgi->param($Feld), "<br>"; }  
  
    ## Aufruf der Funktion zum Auswerten der Daten  
    &advsearch;  
  
}else {  
  
    ## Anzeige der Suchseite  
    &advsearchstart;  
};  
  
### Subroutine zum Anzeigen der Suchmaske  
sub advsearchstart  
{  
    ## Ueberschrift  
    print $cgi->h1("Erweiterte Suche");  
    print $cgi->start_form( -method=>'POST',  
                            -action=>$LINK),  
          $cgi->checkbox( -name=>'dateCheck',  
                       -label=>'Datum'),  
          $cgi->br,  
          $cgi->hr,  
          $cgi->submit(-value=>'Suchen',  
                 -name=>'searchAdv'),  
          $cgi->end_form(),  
          $cgi->end_div();  
};  
  
sub advsearch {  
  
    ## Ueberschrift  
    print $cgi->h1("Suchergebnis");  
  
    ## Testausgabe - bleibt leer  
    my @Feldnamen = $cgi->param();  
  
    foreach my $Feld (@Feldnamen) {  
          print $cgi->b('Feldname: '),  
                  $Feld,  
                  $cgi->b(', Inhalt: '),  
                  $cgi->param($Feld), "<br>"; }  
  
    ## Ueberpruefen, ob etwas ausgewaehlt  
    if ($cgi->param()) {  
  
        print $cgi->p("ja");  
  
    }else{  
      ## Wenn nichts ausgewaehlt wurde  
      print $cgi->p("keine Auswahl getroffen");  
    }  
  
  
    # Ende der Seite  
    print   $cgi->end_div();  
  
};## Ende Funktion advsearch  
  
## Seite zumachen  
print   $cgi->div({-id=>"footer"}, "ENDE"),  
        $cgi->end_div(),  
        $cgi->end_html();  
  
##EOF##  
  

Hm ... anstatt eine Subroutine aufzurufen, könnte ich ja auch gleich oben in der if-Bedingung die Formularwerte auswerten. Da is ja noch alles da.

Gruß,
Leeloo

--
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra