Domino 9 und frühere Versionen > ND6: Entwicklung

Webformular öffnen mit Parameterübergabe

(1/1)

geissbock:
Hallo,
ist es möglich in ein Webformular mit Aufruf der URL und Übergabe von Parametern, diese direkt in die Felder des Webformulars zu übernehmen?
Also zum Beispiel:
Mit solch einer URL das Formular fmArticle aufzurufen und dann dort die Felder Autor mit Meier und year mit 2011 "vorzubelegen"
http://server/path1/path2/file.nsf/fmArticles?OpenForm&AUTOR=Meier&year=2011

Danke

Tode:
Erstelle in Deiner Maske mal ein Feld Namens "QUERY_STRING" oder "QUERY_STRING_DECODED". Das enthält automatisch die Parameter. Dann kannst Du im Vorgabewert Deiner Felder einfach per @Word , @Explode und/oder @Right( QUERY_STRING , "Autor=" ) o.ä. die Werte in die Felder übernehmen.

Dazu willst Du Dir in der Designer- Hilfe in der Index- Ansicht die Einträge zu "Table of CGI variable names" anschauen...

Gruss
Tode

pram:
Guten Abend, ist zwar ein bisschen OT, aber das muss ich an dieser Stelle los werden:
Bei der Implementierung von  QUERY_STRING_DECODED wurde m.E. nicht zu Ende gedacht und kann in vielen Fällen m.E. nicht sinnvoll verwendet werden.

Angenommen ich will
- Firma: 2&2 Internet
- Tel:1234
- Fax:2345
übergeben, so muss ich das folgendermaßen encoden (man beachte das & Zeichen):
http://server/pfad/maske?OpenForm&Firma=2%262%20Internet&Tel=1234&Fax=2345

QUERY_STRING ist dann korrekterweise: "OpenForm&Firma=2%262%20Internet&Tel=1234&Fax=2345" und ich kann diesen mit

--- Code: ---parts:= @URLDecode("Domino";@Explode(QUERY_STRING;"&"))

--- Ende Code ---
in eine Liste (Inhalt: name=wert) zurückverwandeln. ein

--- Code: ---sanityfiler:="Firma":"Tel":"Fax"
@Transform(parts;"x";@if(@left(x;"=")=sanityFilter;@SetField(@left(x;"=");@right(x;"="));""))

--- Ende Code ---
könnte dann die Inhalte auf die Felder verteilen. (Achtung: Formel ist nicht getestet)


Jetzt zum Problem:
QUERY_STRING_DECODED dekodiert den ganzen Query-String, was m.E falsch ist. Als Ergebnis bekommt man "OpenForm&Firma=2&2 Internet&Tel=1234&Fax=2345" und man kann nicht mehr eindeutig feststellen was als Value für Firma übergeben wurde... :-:

Ein weiterer Fallstrick: Will man auf eine CGI-Variable zugreifen, so muss ein entsprechend benanntes Feld in der Maske vorhanden sein (Text,Computed for Display und per Hideformel versteckt)
Gruß
Roland

geissbock:
Moin, moin,
vielen Dank für die beiden Hinweise. Klappt perfekt und ich bin immer wieder begeistert über die schnelle und kompetente Hilfe in diesem Forum.
Noch einen scönen sonnigen Tag.

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln