31. januar 2012 - 23:36 Der er 8 kommentarer og
1 løsning

JavaScript + Overfør parameter til POPUP side og vis på siden...

Hej,

Jeg har et problem:

Jeg har eb HTML-side, som ved klik kalder en POPUP (lidt af koden her:)

<form>
    <input id="details" name="details">
    <input type="button" name="choice"  onClick="window.open('t2.html','popuppage','width=850,toolbar=1,resizable=1,scrollbars=yes,height=700,top=100,left=100');" value="POST">
</form>

Popup siden hedder T2.HTML og ser sådan ud:

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function sendValue (s)
{
    var selvalue = s.value;
    window.opener.document.getElementById("poststed1").value = selvalue;
    window.opener.document.getElementById("poststed2").value = selvalue;

    window.close();
}
//  End -->
</script>

<form name="selectform">
    <input name="details3" id="details3" value="">
    <input type="button" value="POST RETUR" onClick="sendValue(this.form.details3);">
</form>

(Tag'ene "poststed1" og "poststed2" refererer til to <inputs ...> i den kaldende kode - det er faktisk poststeder (eks: 2100 --> Hellerup) )

Det jeg ønsker er at kunne overføre en parameter (i dette tilfælde et postnummer (eks 2900) som skal vises i en <Input i T2.HTML, koden bliver verificeret af et javascript (ikke vist og ikke sendt med (pga. størrelsen ) og så skal scriptet returnere ØSTERBRO. (PT skriver jeg koden manuelt ind.)

Men jeg har brug for noget kode, som:

1: Ved kaldet til POPUP (T2.HTML) indkluderer postnummer i parameter kaldet:
java script:void(0);
onClick="window.open('t2.html', POSTNUMMER,  'popuppage','width=850,toolbar=1,resizable=1,scrollbars=yes,height=700,top=100,left=100');" value="POST">

2:  I T2.HTML kan trække POSTNUMMER ud fra kommandokaldet fra kaldende HTML-side og placere det i en tilgængelig <input ... > , som jeg senere kan få tilgang til via JavaScript.

Returneringen af data (poststedet- erne) er der ingen problemer med.

Kristian
Avatar billede olebole Juniormester
01. februar 2012 - 00:24 #1
<ole>

Den forklaring fatter jeg hat af!

Du kan ikke sende noget med i åbningen af en popup. I popup'en kan du til gengæld hente noget fra det åbnende vindue. Men jeg har ingen idé om, hvad du gerne vil  =)

/mvh
</bole>
01. februar 2012 - 13:29 #2
HEJ OleBole

(har L.E.Vemand'en det godt ?  - hæ hæ !)

Som du ved har jeg et projekt kørende med Delphi som "database" og HTML-side visninger som display.

Det, der er tanken her, er at kunne hente poststeder (postnummer ind --> Poststeder ud) (eks: "2100" ind -- "HELLERUP" ud ). Men som HTML-popup'er. (Jeg skal bruge denne postnummer-verifikations- popup andre steder i det samlede prgm-kompleks også så derfor denne valgte løsning.

(Altså en art HTML-side dobbel-dialog. Hvis det altså er muligt.)

Men da du skriver (citat:

"I popup'en kan du til gengæld hente noget fra det åbnende vindue."  ) citat slut

tror jeg har løsningen. Har ihvertfald nogle ideer, som skal prøves.

Virker det - lukker jeg bare problemet/ spørgsmålet (med din godkendelse, da jeg ved du ikke samler point, (og husk at "brokke" dig hvis du ombestemmer dig.. ! ))

KRistian
01. februar 2012 - 13:56 #3
HEJ,

Jo det funkede som en drøm. Funktionen gør det jeg vil have den til at gøre. Så jeg lukker og slukker, takker og bukker...

KR
Avatar billede olebole Juniormester
01. februar 2012 - 16:19 #4
Jeg ombestemmer mig skam ikke - ellers tak  =)

I virkeligheden udveksler du jo allerede data med åbnervinduet i dette udtryk:

window.opener.document.getElementById("poststed1").value

Du kunne også sende data med i URL'en, som var det et serverdokument. Du kan prøve min kode, som implementerer et array af GET-variabler - næsten, som det kendes fra PHP:

<script type="text/javascript">
(function(){
    var sQ = location.search, i = 0;
    window.JS_GET = {length:0};
    if (sQ.length<2) {return}
    sQ.substr(1).replace(/(.+?)=(.*?)(&|$)/g, function(a,b,c){JS_GET[(i++)]=JS_GET[b]=c;JS_GET.length=i});
})();

alert("JS_GET.length: "+JS_GET.length);
alert("JS_GET[1]: "+JS_GET[1]);
alert("JS_GET['navn']: "+JS_GET['navn']);
</script>

<p>
    <a href="?id=123&navn=OleBole">TEST</a>
</p>
01. februar 2012 - 19:02 #5
HEJ OleBole,

Tak for koden. Skal prøve den lidt senere. Jeg prøvede min egen kode, som virkede (men var sløv som bare helhest).

Der er her tale om ca. 3000 danske, 5000 NORSKE og sikkert ditto svenske (dog ikke samlet, men hver for sig) postnumre, som skal scannes enkeltvis. Det resulterede i at jeg ændrede hele rutinen.

Lavede den om således at postnummer lægges "tilbage" til Delphi (D7) og med en DATABASE FILTER-funktion finder den postnummer og -sted betydeligt hurtigere.

Det fører jeg så tilbage til korrekte TAG på Web-siden (En funktion som gi'r mig tilgang til den enkelte HTML-tag - læsning og skrivning), således at BUTTON klik'et virker som en Delphi Sub-routine.

Men jeg får med STATS-bank garanti (og morgenkaffe)brug for din rutine også, så tak for den..

Mens jeg har dig:

Har du et link / eller bedre titel på en bog (husk ISBN-nummer) (engelsk eller  dansk) hvor WINDOWS DOM modellen er beskrevet i detaljer - gerne med en masse eksempler og hvordan "man" samspiller JavaScript med externe programmer.

www.W3School.com duer bare ikke til dette ....

KRistian

Så til NU:  1000000000 --> 00 (bestem selv antal 0'ler) TAK
Avatar billede olebole Juniormester
01. februar 2012 - 19:12 #6
Selvtak. Jeg er lige blevet inviteret til kaffe hos min yngste datter (et af det utal af privilegier, midaldrende fædre bliver begavet med), men jeg har måske en idé til det med postnumre - specielt, når det kører lokalt. Jeg prøver at huske tråden, til jeg kommer hjem igen  *o)
Avatar billede olebole Juniormester
02. februar 2012 - 18:31 #7
Jeg har samlet de danske postnumre i et JavaScript objekt, kaldet oP og skrevet en lillebitte funktion, som lynhurtigt finder et postnummer i objektet og indskriver det i et SPAN element, når der klikkes udenfor feltet.

Prøv selv koden  =)
03. februar 2012 - 13:00 #8
HEj,

SUPER-DUPER kode. Indlagde ca. 5000 Norske postnumre og det kører .. Virker bedre end min egen (og det siger noget (hehe)).

Så hertil er kun at sige:


  for N := 0 to Uendelig DO
    Say ("THANKS A LOT TO OLEBOLE ");
}

skrevet i JavaDelpiC++AspPhp (eller noget i den retning...)

KR
Avatar billede olebole Juniormester
03. februar 2012 - 15:06 #9
Selvtak. Det har faktisk været lidt sjovt at kode lidt med i periferien af dette projekt. Jeg har aldrig selv rodet med Delphi frameworket, så det har været lidt som at kode med den ene hjernehalvdel (hvilket nogle sikkert vil se som et fremskridt)  :D
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