Avatar billede oergaard Nybegynder
21. februar 2005 - 11:57 Der 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.

Nogen der kan hjælpe mig ?

//Oergaard
Avatar billede di8leva Nybegynder
21. februar 2005 - 12:08 #1
Avatar billede ldanielsen Nybegynder
21. februar 2005 - 12:10 #2
Ja.

onclick på dagen skal være noget i stil med


window.opener.document.formNavn.feltNavn.value = 'hvad det nu er';
self.close();
Avatar billede oergaard Nybegynder
21. februar 2005 - 12:32 #3
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'" ?

//Oergaard
Avatar billede ldanielsen Nybegynder
21. februar 2005 - 12:55 #4
Sidste aktive felt? Du mener sikkert at popup'en skal vide hvilket felt der skal indsættes i.

du kan sende besked med fra hovedsiden når du åbner popup'en (her forkortet):

window.open("dato.htm?datofeltnavn")

i popup'en gør du så sådan:

var loc = "" + document.location
var feltNavn = loc.split["?"][1]


og kaldet til hovedsiden bliver så:

window.opener.document.formNavn[feltNavn].value = 'hvad det nu er';
Avatar billede oergaard Nybegynder
21. februar 2005 - 13:04 #5
Jeg er lige på vej hjem fra arbejde. Tester det når jeg kommer hjem. (ind til videre virker det som det skal i al fald) :-)

//Oergaard
Avatar billede roenving Novice
21. februar 2005 - 14:13 #6
-- og du kan nemmere hente den sådan:

var feltNavn = location.search.substring(1);
Avatar billede oergaard Nybegynder
21. februar 2005 - 16:48 #7
Så er jeg her igen.

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.

//Oergaard
Avatar billede roenving Novice
21. februar 2005 - 16:52 #8
opener.document.FORMNAVM.elements[feltNavn].value = "teksten fra vinduet"; ?-)
Avatar billede oergaard Nybegynder
21. februar 2005 - 16:59 #9
Ahh jeg skulle lige have "elements" med.

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.

//Oergaard
Avatar billede roenving Novice
21. februar 2005 - 17:01 #10
Oki, så bliver det nok:

var feltNavn = location.search.split('&')[1];
Avatar billede oergaard Nybegynder
21. februar 2005 - 17:03 #11
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.

//Oergaard
Avatar billede roenving Novice
21. februar 2005 - 17:06 #12
Hvordan skulle du kunne få kald fra andet end der, hvor du kalder ?-)
Avatar billede oergaard Nybegynder
21. februar 2005 - 17:09 #13
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.
Avatar billede roenving Novice
21. februar 2005 - 17:21 #14
Så må du gøre det fra de steder, hvor du klikker:

<img src="images\Kalender.gif" onclick="nytvindue('FraDato');">

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)
}
Avatar billede oergaard Nybegynder
21. februar 2005 - 17:31 #15
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.
Avatar billede ldanielsen Nybegynder
21. februar 2005 - 17:53 #16
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
Avatar billede oergaard Nybegynder
21. februar 2005 - 18:00 #17
ldanielsen> Der tabte du mig helt :-)
Avatar billede oergaard Nybegynder
21. februar 2005 - 18:31 #18
Nå jeg vil stoppe for idag og tilbringe lidt tid sammen med min familie også!

Jeg vender tilbage i morgen :-)

//Oergaard
Avatar billede roenving Novice
21. februar 2005 - 18:32 #19
<script type="text/javascript">
var fld = null;
</script>

<input type="text/javascript" name="FraDato" onfocus="fld=this" onblur="fld=null">

-- og så sætte værdien således:

if(!opener.fld==null)
  opener.fld.value = "din tekst";
Avatar billede oergaard Nybegynder
22. februar 2005 - 10:30 #20
Så er jeg tilbage igen.

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.

//Oergaard
Avatar billede ldanielsen Nybegynder
22. februar 2005 - 10:35 #21
Ih, det må jeg sige

Men det var vel window.opener.document ... der var det nye du lærte, ikke?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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