[JavaScript] Variabele doorgeven aan popup

Pagina: 1
Acties:

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 22-08 10:27

Kaastosti

Vrolijkheid alom!

Topicstarter
Ik ben bezig met het maken van een popup-window, waarin variabele inhoud moet komen. Het gaat om het volgende:

Lijst plaatjes (laten we zeggen thumbnails).
Als je er op klikt verschijnt er een popup met daarin de grote(re) versie.

Nou lijkt dit allemaal heel makkelijk, maar er zit een extra moeilijkheid aan. Ik maak gebruik van de php template engine SMARTY. Deze werkt met templates, die ik ook moet gebruiken voor die popup.

Het probleem hiermee is het volgende:
- Ik weet niet hoe ik die variabele door kan geven aan de popup
- Die popup moet een template (.tpl) file zijn, die een image_id moet meekrijgen

Ik ben al 2 uur aan het proberen, maar het eerste probleem kan ik al niet eens oplossen. Ik heb inmiddels een site (www.irt.org) doorgelopen, maar ook hier vind ik niet wat ik nodig heb helaas.

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • porn*
  • Registratie: Januari 2001
  • Laatst online: 17-08 14:22

porn*

...take on the world!

Ik ben niet echt bekend met de engine die je noemt, maar als die normaal met Javascript om kan gaan kun je volgens mij het best een object aanmaken, in het frame de window.opener oproepen, en van daaruit het object binnenhalen. In dat object kun je stoppen wat je wilt, gewone variabelen, arrays maar ook andere (eventueel zelfgemaakte) objecten.

Moet toch niet zo moeilijk zijn, tenzij dat in SMARTY niet kan :)

Bnet pindle#2913


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 22-08 10:27

Kaastosti

Vrolijkheid alom!

Topicstarter
Wat ik nu doe is het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
<!--
function popup(image_id) {
    var imgPopup=window.open('scp_popup.tpl','imgPopup','width=825','height=630');
    imgPopup.document.open(); 
    imgPopup.document.close();
    imgPopup.document.location.href = aHtml;
    if(imgPopup&&!imgPopup.closed) {
        imgPopup.focus();
    }   
}
//-->

Dat is heel simpel een popup window met allerlei extra's :)

Als aanroep doe ik gewoon <a href="javascript:parent.popup('1')">POPUP 1</a><br>. Hiermee wil ik eigenlijk een image_id meegeven aan die popup, waar ik nu voor het gemak even '1' heb ingevuld.

Zoals je ziet open ik bij window.open de scp_popup.tpl... hier moet die variabele echter ook beschikbaar zijn, en daarvan weet ik dus niet hoe ik het voor elkaar krijg. Normaal roep je namelijk binnen de template engines templates aan met {include file='scp_popup.tpl' id=1} bijvoorbeeld om een variabele id de waarde 1 te geven binnen die template.

Dat geintje gaat op deze manier niet binnen het popup-script werken.. help!

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 22-08 10:27

Kaastosti

Vrolijkheid alom!

Topicstarter
Probleem is op een andere manier opgelost... ze vonden 't best als ik ipv een template een php file gebruikte, aangezien een andere manier echt geen doen was (als het al mogelijk was) :)

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Even los van je vraag (en de oplossing die je inmiddels zelf al hebt verzonnen) zie ik in bovenstaande code een aantal fouten cq. wazige zaken:
  1. de extra features bij een window.open horen in een komma-gescheiden string en niet als afzonderlijke parameters
  2. Je opent het document, sluit het meteen daarna weer
  3. location.href hoort bij het window object en niet bij het document
  4. je opent het venster met een pagina en 2 regels later wijzig je deze alweer naar de variabele aHtml

Today's subliminal thought is:


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 22-08 10:27

Kaastosti

Vrolijkheid alom!

Topicstarter
Yup ik weet 't, niet echt efficient en logisch. Ik heb dan ook, als fervente tegenhanger van JavaScript, de code niet zelf geschreven, maar hiermee alleen een heleboel dingen geprobeerd. Daardoor is het niet echt meer wat het hoort te zijn, dus dat er weinig van klopt zou heel goed kunnen :)

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

is dit nog een idee:
code:
1
2
3
4
5
6
7
8
9
10
<!--
function popup(image_id) {
    var imgPopup=window.open('scp_popup.tpl','imgPopup','width=825,height=630');
    imgPopup.document.varName.value = 'melp';
    //imgPopup.document.location.href = aHtml; // huh?
    if(imgPopup&&!imgPopup.closed) {
        imgPopup.focus();
    }   
}
//-->

kun je trouwens toelichten waarom je een variabele naar een venster wilt sturen en in dat venster vervolgens gelijk weer een ander document laadt :?


Darnaast zou het nog kunnen werken door de var gewoon achter de url te lijmen, maar ik weet niet of je template-systeem daar mee om kan gaan:

code:
1
var imgPopup=window.open('scp_popup.tpl?varName=melp','imgPopup','width=825,height=630');

waarna je um in de popup distileert.

www.jurgroessen.nl


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 22-08 10:27

Kaastosti

Vrolijkheid alom!

Topicstarter
'scp_popup.tpl?varName=melp'
Dat ging iig niet werken, aangezien de tpl niet meer door de php parser wordt gehaald en dus niet om kan gaan met $_GET['var']... daarom heb ik er uiteindelijk maar gewoon een php van gemaakt, die dat uiteraard wel kon.

Ook het stukje JavaScript is een stukje netter geworden, met idd ook jouw punten daarin verwerkt.

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

maar dit:
code:
1
'scp_popup.tpl?varName=melp'

is niet per definitie een var die je alleen in php kunt destileren hoor, javascript kan ook gebruik maken van substrings...
Alleen is het de vraag of die template-parser die substring laat staan bij het schrijven van html..

Anyway, als het werkt en het is naar je zin dan is het klaar toch? :)

www.jurgroessen.nl

Pagina: 1