Kathy: Weitergabe von Parametern in form-tag

Hallo,
ich möchte Auswahlzeilen aufbauen der Art:
Input-Feld (Zur Eingabe von verschiedenen Möglichkeiten)
weitere Felder, wie Name, Vorname etc.
Im gerufenen PL-Programm erhalte ich bisher als einzige Information den Namen des input-Feldes und dessen Inhalt.
Wie kann ich die übrigen Felder der Zeile übergeben?
Schönen Sonntag
Kathy

  1. hi,

    Im gerufenen PL-Programm erhalte ich bisher als einzige Information den Namen des input-Feldes und dessen Inhalt.

    Jow, fragst den Namen ab und bekommst den Inhalt. Der Name ist das Attribut name="" im input-Element.

    Wie kann ich die übrigen Felder der Zeile übergeben?

    Ich gehe mal davon aus, serverseitig ist Perl (weil Du PL notiert hat). Der Parser ist i.d.R. vom CGI-Modul, da nimmst Du die param()-Funktion zur Formularauswertung. param('vorname') liefert Dir den Wert aus dem Feld mit name="vorname". Falls Du mehrere Inputfelder mit gleichem Namen hast, liefert Dir param('name') eine @Liste mit mehreren Werten. Und schließlich: param() ohne Argument liefert Dir, sofern Parameter gesendet wurden, eine Liste aller namen der Eingabefelder. param() ohne Argument liefert undef, wenn keine Parameter gesendet wurden.

    Hotti

    1. Hallo

      Im gerufenen PL-Programm erhalte ich bisher als einzige Information den Namen des input-Feldes und dessen Inhalt.

      Den Inhalt des Input-Feldes weiß ich ja, wie geschrieben. Die andern Felder sind aber keine Eingabefelder sondern kommen aus einer Datei. Deren Inhalte brauche ich aber auch.

      1. hi,

        Im gerufenen PL-Programm erhalte ich bisher als einzige Information den Namen des input-Feldes und dessen Inhalt.

        Den Inhalt des Input-Feldes weiß ich ja, wie geschrieben. Die andern Felder sind aber keine Eingabefelder sondern kommen aus einer Datei. Deren Inhalte brauche ich aber auch.

        Wo liegt denn die Datei, auf dem Server oder am CLientrechner? Wie ist die Datei aufgebaut, wer hat die Datei erzeugt (Programm, Mensch...)?

        Hotti

        1. Hallo,

          Wo liegt denn die Datei, auf dem Server oder am CLientrechner? Wie ist die Datei aufgebaut, wer hat die Datei erzeugt (Programm, Mensch...)?

          Was hat dies mit dem Problem zu tun?
          Die Eingabe kann heute von einer sequentiellen Datei, morgen von einer Datenbank und übermorgen von irgend etwas anderem kommen.
          Ich möchte also nicht(wie Du vielleicht vermutest) in dem PL-Programm auf die Quelle zugreifen, um die Informationen zu holen.

          1. Hallo

            Wo liegt denn die Datei, auf dem Server oder am CLientrechner? Wie ist die Datei aufgebaut, wer hat die Datei erzeugt (Programm, Mensch...)?

            Was hat dies mit dem Problem zu tun?

            Weil es günstig wäre, wenn das Skript wüsste, wo es den Inhalt der Datei findet.

            Die Eingabe kann heute von einer sequentiellen Datei, morgen von einer Datenbank und übermorgen von irgend etwas anderem kommen.
            Ich möchte also nicht(wie Du vielleicht vermutest) in dem PL-Programm auf die Quelle zugreifen, um die Informationen zu holen.

            Was dann? Entweder du teilst dem Skript mit, wo die Daten zu finden sind (was du offensichtlich nicht willst) oder du übergibst die Datei an das Skript, in HTML üblicherweise über einen Upload.

            Tschö, Auge

            --
            Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
            Terry Pratchett, "Wachen! Wachen!"
            ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
            Veranstaltungsdatenbank Vdb 0.3
            1. Hallo

              Was dann? Entweder du teilst dem Skript mit, wo die Daten zu finden sind (was du offensichtlich nicht willst) oder du übergibst die Datei an das Skript, in HTML üblicherweise über einen Upload.

              Die Daten liegen doch alle in dem <form> ....</form> vor.

              1. Die Daten liegen doch alle in dem <form> ....</form> vor.

                Dann verstehen wir Dein Problem nicht. In der Theorie scheint alles richtig, in der Praxis sind da Fehler, die wir nicht erahnen können.

                Am wahrscheinlichsten:

                Dein Formular ist kaputt.
                Deine Auswertung der Daten funktioniert nicht.

                Ohne Code ist keine weitere Hilfe möglich.

                Fred

                1. Hallo

                  Dann verstehen wir Dein Problem nicht. In der Theorie scheint alles richtig, in der Praxis sind da Fehler, die wir nicht erahnen können.

                  Im Beitrag um 22:24 habe ich versucht es noch einmal zu erläutern.
                  Die Daten liegen alle im Formular vor (allerdings als Text-Felder, die ja nicht standardmäßig über POST oder GET weitergegeben werden). Daher ja Dein Vorschlag, hidden-Felder zu verwenden.
                  Gruß
                  Kathy

      2. Den Inhalt des Input-Feldes weiß ich ja, wie geschrieben. Die andern Felder sind aber keine Eingabefelder sondern kommen aus einer Datei. Deren Inhalte brauche ich aber auch.

        Dem bisher geschrieben entnehme ich, dass die Daten bereits von einem Skript ausgelesen werden, welches das Formular erzeugt.

        Du hast viele Möglichkeiten:

        1. Formular geht per POST raus.

        1a)
        Hänge die Daten url-codiert an die URL im action-Attribut an.
        Nachteil: Die Daten können manipuliert werden.

        1b)
        Schreibe die Daten in versteckte Formularfelder
        Nachteil: Die Daten können manipuliert werden.

        1c)
        Speichere die Daten in einer Session auf dem Server und sende ein Session-Cookie

        1e)
        Speichere die Daten in einer Session auf dem Server und hänge die Session-Id an die URL im action-Attribut an.

        1d)
        Speichere die Daten in einer Session auf dem Server die Session-Id einem verstecktem Formularfeld.

        1f)
        Speichere die Daten in einem Cookie
        Nachteil: Die Daten können manipuliert werden.

        Formular geht per GET raus.

        2a)
        Schreibe die Daten in versteckte Formularfelder
        Nachteil: Die Daten können manipuliert werden.

        2b)
        Speichere die Daten in einer Session auf dem Server und sende ein Session-Cookie

        2c)
        Speichere die Daten in einer Session auf dem Server die Session-Id einem verstecktem Formularfeld.

        2d)
        Speichere die Daten in einem Cookie
        Nachteil: Die Daten können manipuliert werden.

        Suchbegriffe: Session, Cookie im Zusammenhang mit der auf dem Server verwendeten Programmiersprache.

        Fred

        1. Du hast viele Möglichkeiten:

          1. Formular geht per POST raus.

          ja

          1a)
          Hänge die Daten url-codiert an die URL im action-Attribut an.
          Nachteil: Die Daten können manipuliert werden.

          1b)
          Schreibe die Daten in versteckte Formularfelder
          Nachteil: Die Daten können manipuliert werden.

          1c)
          Speichere die Daten in einer Session auf dem Server und sende ein Session-Cookie

          1e)
          Speichere die Daten in einer Session auf dem Server und hänge die Session-Id an die URL im action-Attribut an.

          1d)
          Speichere die Daten in einer Session auf dem Server die Session-Id einem verstecktem Formularfeld.

          1f)
          Speichere die Daten in einem Cookie
          Nachteil: Die Daten können manipuliert werden.

          Die Variante 1b habe ich versucht (der Effekt wird bei den anderen Varianten gleich sein).
          Im gerufenen Programm habe ich jetzt als POST-Variablen den Feldnamen (pro Zeile durchnumeriert) und den eingegebenen Wert und die Werte der versteckten Felder aber aller Zeilen.
          Natürlich könnte ich jetzt über den Index die zugehörigen Werte ermitteln, es würden aber bei großen Tabellen sehr viele Daten weitergegeben werden.

          Wenn man erreichen könnte, dass nur die Werte der selektierten Zeile weitergegeben würden, dann wäre dies optimal.
          Beispiel:
          Anzeige
          Aktion Pers-Nr Name       Vorname ........

          1221   Mayer      Kurt
                  2223   Müller     Gert
          ....
                  4221   Schulze    Klaus

          Aktion als input-Feld definiert,
          Pers-Nr als Text-Feld   und zusätzlich als hidden input-Feld mit value-Angabe
          Name und Vorname analog

          Wenn ich 4221 in Aktion verändere, sollten nur die Informationen dieser Zeile weitergegeben werden.

          1. Wenn ich 4221 in Aktion verändere, sollten nur die Informationen dieser Zeile weitergegeben werden.

            Das ist ein geradezu klassischer Anwendungsfall für Javascript. Benutze ein unsichtbares Hilfsformular, trage die Daten dort ein und sendest dieses ab.

            Oder Du wendest Dich gleich einem xmlHttp-Request zu. Der ist genau dafür erfunden.

            fred

            1. Hallo,

              Das ist ein geradezu klassischer Anwendungsfall für Javascript. Benutze ein unsichtbares Hilfsformular, trage die Daten dort ein und sendest dieses ab.

              Es soll aber Leute geben, die Javascript deaktiviert haben.

              Oder Du wendest Dich gleich einem xmlHttp-Request zu. Der ist genau dafür erfunden.

              Läuft dies auch nur mit Javascript?
              Gruß
              Kathy

              1. Hi,

                Das ist ein geradezu klassischer Anwendungsfall für Javascript. Benutze ein unsichtbares Hilfsformular, trage die Daten dort ein und sendest dieses ab.

                Es soll aber Leute geben, die Javascript deaktiviert haben.

                Es soll auch Entwickler geben, die die Fähigkeit haben, sich für solche Fälle eine Fallback-Lösung zu überlegen …

                Bspw. einen Bearbeiten-Link pro Zeile, der die ID des Datensatzes an eine Seite übergibt, in der ein Formular angezeigt wird, dass nur das Bearbeiten dieses einen Datensatzes erlaubt – und nach dem Abschicken und der serverseitigen Verarbeitung wieder die Übersichtsseite ausgibt/zu dieser weiterleitet.

                Oder Du wendest Dich gleich einem xmlHttp-Request zu. Der ist genau dafür erfunden.

                Läuft dies auch nur mit Javascript?

                Ja.

                MfG ChrisB

                --
                RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?