Avatar billede computopic Nybegynder
09. september 2003 - 10:56 Der er 4 kommentarer og
3 løsninger

modtage data fra en formular..

Nogen der har en løsning på følgende:

html formular som ligger på en linuxwebserver sender et par felter/variabler til en domino server website..

Hvordan modtager man variablerne og får dem skrevet i den database, samt at de sendte data vises på skæeme
Avatar billede bamzen Nybegynder
09. september 2003 - 11:12 #1
Ja, du opretter en notes form, som er din action i din linux server form

så opretter du et computed felt der hedder Query_String_Decoded med samme værdi

så opretter du et beregnet felt for hver værdi
i disse skriver du så noget formula som sådan:

_get1 := @right(Query_String_Decoded;"param1=");
_get2 := @if(@contains(_get1;"&");@left(_get1;"&");_get1);
_get2

så mangler du kun at gemme dokumentet, og det kan du gøre med et javascript der ligger i body onload eventen og ser således ud

document.forms[0].submit()
Avatar billede jogii Nybegynder
09. september 2003 - 11:26 #2
Jeg går ud fra du vil lave en POST. (GET kan også laves)
På Domino laves et design element, som rammes af denne POST (Agent eller Formular/Web Queary Save-agent). Under afvilkingen af agenten vil data sendt med POST være tilgængelige som CGI-variable (Request_Content). Disse data behandles og vises enten med den formular der blev kaldt eller via en anden formular (redirection).

lidt om Request_Content:
Request_Content is a string of name-value pairs representing HTML fields on your HTML form, formated like so:  name1=value1&name2=value2&name3=value3 (etc.)

Følgende er skrevet fra hånden og ikke testet:
Under afvilkingen af agenten fås tilgang til data via
  dim session as new NotesSession
  dim submitteddoc as NotesDocument
  set submitteddoc = session.DocumentContext
  dim data as string
  data = submitteddoc.Request_Content(0)

Data kan herefter parses og overføres til formular-felter (hvis det var Formular/Agent der blev postet til). Derefter skal der redirectes til det oprettede dokument.

Hvis det var en agent alene der blev kaldt skal data gemmes i et (eller flere hvis det ønskes) dokumenter, som der bagefter redirectes til.

Det virker måske lidt forvirrende, men det er jo trods alt en database vi har med at gøre.
//Jörg
Avatar billede jogii Nybegynder
09. september 2003 - 11:37 #3
yeps, bamzens metode er en GET variant.
For at kalde en Domino formular skal du adressere den som
//server/dabasesti/database.nsf/FORMULARNAVN?OpenForm&data1=data&data2=data&data3=etc...
Sikkerheden er et kapitel for sig (Fælles for POST og GET). Rettighederene til databasen skal umiddelbart sættes for "Anonymous" til Author/create documents for at du ikke får problemer ved gemning.
Avatar billede pr0gm4n Nybegynder
09. september 2003 - 13:41 #4
Hvis der kun er tale om "et par felter/variabler" kunne du overveje at lave det som en parameter overførsel til en agent a'la:

/server/dabasesti/database.nsf/AGENTNAVN?openAgent&data1##data2##data3

Dvs du laver et link der requester en url lignende ovenstående

I agenten tager du fat i Context dokumentet, herpå findes mirakuløst feltet "Query_String_Decoded" som bamzen omtaler. Lav lidt streng behandling på indholdet af dette felt - nemmest vha. evaluate(@word.. alternativt via en @word lignende funktion skrevet i script.

Gem herefter de modtagne værdier i de rigtige felter og lav et svar dokument som du kan "sende" tilbage til brugeren. Sidstnævnte kan enten være et dokument i Notes databasen, alternativt kan du lave det i ren HTML. Eller måske endda en parameteroverførsel tilbage til den oprindelige server via en url.

Jeg har (desværre) aldrig helt forstået det der med POST og GET; men ved at sender dine (få) værdier via en url, tror jeg heller ikke du behøver at bekymrer dig om dette.
Avatar billede jogii Nybegynder
10. september 2003 - 08:26 #5
-> pr0gm4n: Det du beskriver er GET (beder om at få de specificerede data tilsendt). Hvis man har en formular med redigerbare felter på skærmen og trykker [Submit] skal der være en <Form>-tag i HTML. Indeni denne tag er der angivet en target for disse data (f.eks. <form method="post" action="//server/sti/db.nsf/view/docunid?EditDocument&amp;Seq=1" name="FORMNAME"> )

Problemet med GET er at der er en maks-grænse for hvor mange data man kan overføre via URL. Denne begrænsning findes (så vidt jeg ved) ikke ved POST.

-> computopic:
pr0gm4n's måde er en meget nem måde at gøre det på. En agent i Domino kan næsten opfattes som et kald til et ASP-script på IIS.
Men ved at koble det sammen med en formular har du omgående en præsentationsmetode for dine data klar.
Avatar billede pr0gm4n Nybegynder
10. september 2003 - 10:00 #6
Tak for kommentaren Jörg, så blev jeg også lidt klogere.
Avatar billede computopic Nybegynder
03. oktober 2003 - 14:35 #7
Jeg takker. Samler op på løsningen.
/ssk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester