06. august 2010 - 13:57Der er
12 kommentarer og 1 løsning
Linke til en form med udfyldte felter
Hej Eksperter
Jeg har brug for at linke til en form, og i linket sende noget input med der automatisk fyldes i de relevante felter.
Formen skal ikke submittes automatisk, felterne skal bare fyldes ud!
For eksempel:
Jeg linker til http://www.udvikleren.dk/Signup.aspx og sender et brugernavn og en e-mail adresse med der så automatisk fyldes i felterne. Brugeren udfylder selv de resterende og trykker "Opret bruger". (Bemærk: Dette var blot et tænkt eksempel, det er teknikken bag jeg er interesseret i).
Der er nok ikke ét korrekt svar til dette da det afhænger af setup og muligheder (hvor kommer fx data til input-felterne fra) - mest oplagt er nok, at hvis brugeren er logget ind ligger info måske i sessions i forvejen så du kan hente dem derfra og ellers er querystrings (evt encrypted) en mulighed.
Jeg har et katalog med et vilkårligt antal elementer. Fra hvert element vil jeg gerne linke til en "kontaktformular" med et antal felter.
Jeg vil så gerne have mulighed for at udfylde for eksempel "Emne" med "Kontaktmail vedrørende " + navnet på mit katalog emne, og "Link" med linket til det pågældende element (Emne og Link er begge felter i formen).
Strengene genererer jeg selv, og vil således gerne have mulighed for at "sende dem med".
Skulle linket have været et almindeligt "mailto" link havde jeg brugt "mailto:mail@adresse.dk?subject=Kontaktmail vedrørende FooBar".
Den optimale løsning ville være at jeg ikke havde mulighed for at redigere noget i formen, dvs. det skal foregå fra den side jeg linker fra.
og på siden med kontaktformen tjekker du om variablerne er sat, hvis de er, smides indholdet i de respektive felter? (og evt. sætter felterne til readonly)
Så vil jeg mene, som også skrevet i mit første indlæg, at en eller flere querystring må være løsningen - enten, hvis du benytter en form for datakilde, ved at føre ID videre og hente informationerne ud på kontaktsiden baseret på det ID eller ligesom med mailto-linket at oprette en række af querystrings så det passer til det antal informationer du vil have med videre.
Jeg er med på at det ville være en løsning, det er også sådan Kim præsenterer det i sit første indlæg.
Begge løsninger kræver dog at jeg håndterer det på kontaktsiden. Uanset om det er igennem query strings eller ved at sende et ID med og hente informationen fra databasen på det grundlag vil det kræve at jeg på kontaktsiden smider informationen i form felterne.
Det er den næst bedste løsning, og nok også den løsning jeg ender med at bruge hvis det ikke kan lade sig gøre som jeg efterspurgte i første omgang.
Det kan ikke lade sig gøre med javascript eller lignende (som i kender til), og udfylde formen udelukkende med information og kode fra den side jeg linker fra?
Grunden til at mailto virker som den gør når du sender parametre med er at det er en standard mailklienterne understøtter, de ved hvad de skal gøre med nogle specielle parametre - du er altså på samme måde nødt til at opfinde din egen standard for hvad din kontaktside understøtter, om den standard inkluderer javascript, .NET eller noget tredje er op til dig selv og ikke mindst de tekniske valg du foretager forinden.
Javascript bliver dog umiddelbart noget svært da du formentlig laver et fuldt sideskift/postback for så er al javascript du laver du på katalogsiden gået tabt - lavede du et "sideskift" vha fx AJAX eller viste du kontaktsiden i et modalvindue ville du godt kunne gøre det da "sideskift" og visning af kontakt så egentlig foregår direkte på katalogsiden så javascript kan køres samtidig med. Den eneste måde javascript kan komme ind over ved et helt sideskift er ved at javascript kan finde parametrene for kontaktsiden - og det kan det kun ud fra din querystring eller hvis du dynamisk opbygger javascript på baggrund af usynlige parametre, fx sessions.
"Let me google that for you" udfylder jo netop søgefeltet på google baseret på en parameter der er sendt med på lmgtfy (altså på element siden, lmgtfy og ikke kontaktsiden, google).
Kig på URL'en til Google - en querystring, ændrer du den ændres også indholdet i Googles tekstboks, lmgtfy sender altså bare en querystring med søgestrengen videre til Google på samme måde som vi har foreslået her.
Querystringen q er den Google benytter til at udfylde tekstboksen med - det er en standard de har valg på samme måde som mailto-variablerne er implementeret i mailklienterne. Om Google håndterer det vha javascript (tvivler dog) eller serverside-kode (formentlig) skal jeg lade være usagt men det sker ikke på en magisk vis kun Google og lmgtfy imellem.
... eller misforstår jeg noget i hvad du ser siderne imellem?
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.