Weitergabe von Parametern in form-tag
Kathy
- html
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
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
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.
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
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.
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
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.
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
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
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:
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
Du hast viele Möglichkeiten:
- 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-Cookie1e)
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.
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
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
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