21. februar 2005 - 11:57Der er
20 kommentarer og 1 løsning
Overfører data fra et popup vindue til form-felt på hovedsiden?
Jeg sidder og laver et site i ASP med databaseadgang. Der er på min site bruge for en kalender, som har lavet som et Popup-window. Det er så meningen, at man ved klik på en given dag automatisk lukker kalender-vinduet samt udfylder det pågældende felt i den form, som man stod i.
Alt så, man står i feltet ”FRADATO” og klikke på kalender ikonet, kalenderen ”popperup” og man vælger så en dag ved at klikke på den. Ved klik lukker det pågældende vindue og man skal så stå tilbage i ”FRADATO” feltet, som nu skal være udfyldt med den valgte dato.
Hvis jeg nu har to (eller flere felter), som alle er felter, hvori der skal indsættes en dato. Er det så muligt, at bruge noget i stil med "window.opener.document.SidsteAktiveFelt.value = 'dato'" ?
Jeg kan ikke helt få denne del til, at virke. Jeg kan godt smide en "prædefineret" streng med over i popup vinduet, men jeg kan ikke få den til selv, at finde ud af hvilket feltnavn den skal sende med over. Ydermere kan jeg ikke få den til, at bruge denne streng til noget, lige bortset fra at skrive den ud eller lignende.
Der er kun ét link til min kalender, hvorfor siden gerne selv skulle kunne finde ud af, hvilket felt der er "aktivt". Lad os blot sige, at der er et FraDato felt og et TilDato felt.
Hvis jeg står i FraDato feltet og klikke på kalender-ikonet, skal siden automatisk vide, at den skal sende brugeren til kalender.asp?kalender=ny&FraDato og kalender.asp?kalender=ny&TilDato, hvis jeg havde stået i TilDato feltet.
Nu har jeg ikke lavet ret meget i hverken ASP eller Javascript, hvorfor jeg nok også er ret meget på bar bund. Men jeg forestiller mig et eller andet med, at ved indgang i f.eks. FraDato feltet sættes en variable til værdien "FraDato", ved udgang sættes den selv sammen variable til Null (e. lign.)
Jeg kan derfor kontroller om den pågældende variable skulle være Null og hvis det er tilfældet står brugeren ikke i et dato felt.
Her er lidt kode, som måske kan hjælpe til en forståelse. Jeg åbner min kalender ved klik på følgende: <a href="java script:nytvindue()"><img src="images\Kalender.gif"></a>
Jeg har så følgende JAVASCRIPT function nytvindue() { var window_left = (screen.availwidth-260)/2; var window_top = (screen.availheight-190)/2; kalender = window.open("kalender.asp??kalender=ny&FELTNAVN","","toolbar=no,scroll bars=no,width=260,height=190,left=" + window_left + ",top=" + window_top) }
Jeg ønsker så FELTNAVN udskiftet med det feltnavn jeg står i.
Jeg har så følgende JAVASCRIPT function nytvindue(felt) { var window_left = (screen.availwidth-260)/2; var window_top = (screen.availheight-190)/2; kalender = window.open("kalender.asp??kalender=ny&"+felt,"Kalendervindue","toolbar=no,scrollbars=no,width=260,height=190,left=" + window_left + ",top=" + window_top) }
Det er lige det der er problemet. Jeg har kun ét sted hvor jeg klikker.
Jeg har søgt lidt og fundet frem til, at de funktioner jeg ønsker, at gøre brug af er OnFocus og OnBlur. Jeg skal så blot vide, hvordan jeg give en variable en værdig, med disse funktioner.
Jeg har prøvet: OnFocus(strFeltNavn="FELTNAVN"); men desværre uden held.
der er også den mulighed at lægge en funktion i hovedvinduet, som man så kalder fra popup'en. Så behøver man ikke overføre data via url'en, men kan registrere det "aktive" felt i en variabel i hovedvinduet
Jeg har funderet lidt over det og er kommet frem til en løsning. Jeg laver simpelthen et "hidden" felt på min form, og tilskriver en værdi ved i denne ved indgang i de pågældende felter.
Jeg havde dog ikke løst den uden hjælp for Idannielsen, hvorfor der her kommer 150 velfortjente points.
Men det var vel window.opener.document ... der var det nye du lærte, ikke?
Synes godt om
Ny brugerNybegynder
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.