Wolfgang: Variablenübergabe

Hallo,
mein Perl-Programm hat mehrere aufeinanderfolgende Eingabebilder.
Im ersten werden Daten eingegeben, die z.T. unverändert in späteren Bildern
benötigt werden.
Bisher habe ich folgendes gemacht:

  • Beim Aufruf des Programms:
      $p1 = $query->param('p1');
          ....
      $pn = $query->param('pn');
  • Bei der Ausgabe der nächsten Seite versteckte Felder der Art
      <input type="hidden" name="p1 value="$p1">
          ....
      <input type="hidden" name="pn value="$pn">

Fragen:
1. Geht dies eleganter, z.B in der Form, dass ich eine ganze Gruppe von Feldern (die unverändert bleiben) durchreiche?
2. Durchreichen aller Felder und anschliessend
nocheinmal die geänderten Felder (deren Werte dann die zuvor übergebenen
überschreiben)?
3. Luxusvariante?
Vielen Dank
Wolfgang

    1. Geht dies eleganter, z.B in der Form, dass ich eine ganze Gruppe von Feldern (die unverändert bleiben) durchreiche?

    Ja, in dem du die Funktion des CGI Moduls nutzt, um die Formularfelder zu erzeugen.

    Struppi.

    1. Hallo Struppi,

      Ja, in dem du die Funktion des CGI Moduls nutzt, um die Formularfelder zu erzeugen.

      Hast Du vielleicht ein kleines Beispiel oder einen Tipp, wie die Funktion heißt?
      Danke
      Wolfgang

      1. Ja, in dem du die Funktion des CGI Moduls nutzt, um die Formularfelder zu erzeugen.

        Hast Du vielleicht ein kleines Beispiel oder einen Tipp, wie die Funktion heißt?

        Die importierte CGI Funktion heisst hidden()

        Eventuell besser als Datenspeicherung auf dem Client wäre die Speicherung von Daten auf dem Server mittels Sessions.

        mfg Beat

        --
        Woran ich arbeite:
        X-Torah
        1. Hallo,

          Die importierte CGI Funktion heisst hidden()

          Noch sehe ich da keinen großen Vorteil. Da muss ich doch auch alle Felder einzeln angeben, die ich weitergeben will.
          Ziel ist aber so etwas wie die Weitergabe eines arrays aller über get/post erhaltenen Parameter, ohne dass ich diese einzeln benennen muss (@allparams o.ä).

          Mit sessions möchte ich mich im Augenblick noch nicht beschäftigen (es sei denn, jemand kann mir ein wirklich einfaches Beispiel empfehlen).
          Gruß
          Wolfgang

          1. Hallo,
            habe gerade noch gelesen, dass PHP eine Session-Verarbeitung anbietet, für Perl aber ein Apache Server nötig ist und/oder es etwas händisch gemacht werden muss.
            Gruß
            Wolfgang

          2. Die importierte CGI Funktion heisst hidden()

            ich importier die nicht, du kannst die auch z.b. mit CGI::hidden() ansprechen.

            Noch sehe ich da keinen großen Vorteil. Da muss ich doch auch alle Felder einzeln angeben, die ich weitergeben will.

            Wieso du kannst das doch leicht automatisieren.

            if( CGI::param() ) {  
             print CGI::start_form();  
             foreach(CGI::param()){  
              print CGI::hidden(-name => $_);  
             }  
             print CGI::submit(-value=> "abschicken"), CGI::end_form();  
            }
            

            Dann hast du ein Formular mit allen Parametern.

            Struppi.