[JS/HTML] Popup window met keuze teruggave

Pagina: 1
Acties:

  • MrDummy
  • Registratie: April 2000
  • Laatst online: 25-07-2025

MrDummy

Nog steeds gek op anime...

Topicstarter
Ik ben even aan het rondkijken op Google, maar het verbaast me dat er nauwelijks aandacht is voor een speciale probleemsituatie van mij.

Ik heb op een site een kalenderoverzicht gemaakt. De details van de dagen worden weergegeven in een popup venster (window() van javascript) na klikken op de kalender dag.

Dat werkt probleemloos. Maar nu heb ik verder uitgebreid zodat je iets kan kiezen in popup venster.
Dit is nu het probleem. Welke target naam moet ik nemen zodat de popup venster na klikken op button of op href link gegevens terugstuurt naar de aangewezen pagina. (bedenk wel dat het ook weer in frames is ingedeeld, dus ook weer juiste frame aanwijzen)

(denk maar aan formulier in popup venster, na submit mag het zich weer sluiten en het moet gegevens kunnen terugsturen naar site zelf, eventueel in juiste frame pagina laden....)

De vraag is nu, hoe maak ik de boel wijs om gegevens vanuit popupvenster door te geven aan de site.
Met <form> probeer ik het, met b.v. target="mainFrame" maar dat werkt niet. Ook niet met _parent.
Misschien moet het met javascript code?

Of er moet wat in window() stukje code staan...

Heeft iemand een tip hiervoor?
Alvast dank! _/-\o_

  • MrDummy
  • Registratie: April 2000
  • Laatst online: 25-07-2025

MrDummy

Nog steeds gek op anime...

Topicstarter
Een klein poging gedaan en target="mainFrame" in <a href ...></a> werkt wel goed.

Nou blijft er alleen nog <form> targeting probleem over. Die ben ik nog aan het uitzoeken of het ook kan met buttons.

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 08:32
Je kunt met window.opener je hoofdvenster aan... op deze manier kun je handmatig de invoervelden overtransporteren naar de andere window.
voor vragen hoe je in de goeie frame komt... zijn genoeg topics
maar met window.frames('blaat') zou je een eindje kunnen komen.

zie ook www.devguru.com --> javascript --> objects

  • MrDummy
  • Registratie: April 2000
  • Laatst online: 25-07-2025

MrDummy

Nog steeds gek op anime...

Topicstarter
Ik heb al wat op gevonden. De knop in <form> moet niet type button zijn, maar type submit zijn.
Dan pas wordt form zelf wel uitgevoerd. De target in <form> is toch wel in orde.

Ik verwar me beetje met die javascript voorbeeld van onclick="window.close()" met ernaast knop van type button.

Zo te zien doet de type button niks. Welke functie heeft die type button eigenlijk in form? Voor mij lijken ze dummy knoppen.

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 10-05 19:05
Een form target werkt alleen bij het submitten van een formulier. Dat gaat het makkelijkste met een submit-knop. Andere buttons (als <input type="button"> en <button>) gebruik je i.c.m. eventhandlers. dus met <input type="button" onclick="this.form.submit()"> boots je een submitbutton na.

Overigens is het zo dat een form submitten met een target ervoor zorgt dat de gegevens *eerst* naar het url van het action-attribuut gestuurd worden en dat *daarna de reply* van die action in het frame komt. De gegevens worden dus niet naar dat frame gestuurd!

Als je daar bijv. een veldje in wilt laten vullen moet je Javascript gebruiken. Je kan dan in de popup een gewone knop opnemen en die met onclick een functie aan laten roepen. In die functie kopieer je de gegevens naar het andere frame. Het formulier in de popup heeft dan geen action / target / method etc nodig.

Zo'n functie (dus in de HTML van de popup, zou er ongeveer zo uit kunnen zien):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function ReturnData()
{   //Grijp de waarde uit een veld (vb. TestVeld van form TestForm) in de popup zelf
    oForm = document.getElementById("TestForm");
    sValue = oForm.elements["TestVeld"].value

    //Maak referentie naar het originele frame
    oOpener = self.opener();

    //Maak een referentie naar het formulier en veld (OpenForm / OpenVeld) in het orig. frame
    oOpenForm = oOpener.document.getElementById("OpenForm");
    oOpenField = oOpenForm.elements["OpenVeld"];

    //Kopieer waarde (kan evt. ook meteen in vorige regel) en sluit popup-venster
    oOpenField.value = sValue;
    self.close()
}

(niet getest)

[ Voor 34% gewijzigd door Morrar op 09-03-2005 11:53 ]