iframe-ben lévő oldal frissítése paraméter átadással
Van egy oldalam ami úgy működik, hogy az iframe-ben futó másik oldalon adatbázist kezelek, táblázatban. Új adat felvitelekor szükséges frissíteni a táblázatot, hogy az új adat automatikusan látható legyen.
Arra szeretnék megoldást találni, hogyan lehet automatikusan frissíteni egy oldal iframe-jét úgy, hogy az iframe-ben futó oldalnak át tudjak adni változóban lévő adatokat.
pl: forgalom.php?kezeloetag=$kezeloetag&adm=$kezeloadm
Az is jó megoldás lenne ha csak a táblázat adatait lehetne frissíteni a teljes oldal frissítése helyett.
■ Arra szeretnék megoldást találni, hogyan lehet automatikusan frissíteni egy oldal iframe-jét úgy, hogy az iframe-ben futó oldalnak át tudjak adni változóban lévő adatokat.
pl: forgalom.php?kezeloetag=$kezeloetag&adm=$kezeloadm
Az is jó megoldás lenne ha csak a táblázat adatait lehetne frissíteni a teljes oldal frissítése helyett.
Miért kell iframe?
De ha mindenképp iframe kell, akkor ahogy írtad, használhatsz GET paraméterek, de utánanézhetsz a window.postMessage()-nek, vagy serviceworker-öknek, esetleg általánosságban keress rá arra, hogy js cross window communication.
Azért használok iframe-t mert
A GET paraméterek működnek javascript alatt, de csak akkor, ha nem változóként adom meg. php esetén nem találom a megfelelő syntaxist a hibátlan hivatkozáshoz. Az iframe a parent oldalon van. Az iframe-ben futó oldalon kellene hivatkoznom önmaga frissítésre úgy, hogy ismét átadásra kerüljenek a változók tartalmai. Ezeket használom az adatbázis táblák azonosítására.
Továbbra sem világos, hogy
A többi részét nem sikerült értelmeznem. Mit kell az alatt érteni, hogy nem változóként adod meg a get paramétereket? Milyen hibátlan hivatkozáshoz kell szintaxis? Milyen a hibás hivatkozás? Mi az, hogy a változók tartalmának átadásáért önmaga frissítésére hivatkozni?
Magyarázd el részletesebben és mutass példakódot, mert így nehéz kibogozni, hogy mi a problémád, vagy mit szeretnél megoldani.
Elnézést ha nem magyaráztam
Az iframe-t találtam a legegyszerűbb megoldásnak, ennyi az egész. Működik is. Sajnos nincs gyakorlatom template rendszer használatában. Igazság szerint még nem találkoztam ezzel a rendszerrel.
Az alábbiakban mutatom azt a kódot ami működik, azaz frissíti a parent oldalon lévő iframe tartalmát:
?>
<script language=JavaScript>
parent.document.iFrame1.location="forgalom.php?hiv=bevetel";
</script>
<?php
Az oldal újratöltésekor a hiv változó felveszi a "bevetel" értéket. Azonban ha a fix szöveg (bevetel) helyett egy változó tartalmát szeretném átadni pl. $bevetel, akkor az a fenti syntaxisban nem működik.
?>
<script language=JavaScript>
parent.document.iFrame1.location="forgalom.php?kezeloetag=$kezeloetag &adm=$kezeloadm&hiv=$bevetel";
</script>
<?php
Mivel az iframe-ben lévő oldalon adatbázist kezelek szükséges a kezelt táblák neveinek elérése. Ezeket a neveket nem szeretném egyszerű szövegként átadni, ezért a táblaneveket változóba tettem. Itt akadtam el. A kezeloetag az összes szükséges tábla nevének előtagja, a kezeloadm a jogosítványok felismerését szolgálja, míg a bevetel egy konkrét tábla nevét takarja (pl ha az előtag "valami_" és a konkrét tábla "bevetel", akkor a hívott tábla "valami_bevetel" lesz).
Azért kértem a segítséget mert nem találtam olyan syntaxist, amely a fenti problémát orvosolni tudja. Azt sem tudom, hogy egyáltalán létezik-e ilyen.
Az iframe elég elavult
Amíg csak GET-ről van szó, addig megoldható iframe.src=...-al, ha POST, akkor talán egy rejtett űrlap küldésével úgy, hogy az iframe-et állítod target-nek, de nem rémlik, hogy valaha próbáltam ilyet. Ha bele akarsz nyúlni az iframe tartalmába javascripttel az valszeg csak same origin alatt fog menni, legalábbis nem rémlik, hogy lenne bármilyen kapcsoló, ami más originre megengedné.
Elavultnak nem mondanám, mert
Találtam megoldást! Kivettem
Kivettem az oldal kódjából a táblázat megjelenítésre vonatkozó sorokat és egy külön fájlba tettem. Az eredeti oldalon csak az adatbázis kezelésére való műveletek maradtak. Valahányszor módosítom az adatbázis tartalmát (új adat, módosítás, törlés) meghívom (include) a megjelenítést szolgáló fájlt. Eredmény: azonnal a helyes adatok jelennek meg a frissített táblázatban anélkül, hogy újratölteném az egész oldalt. Működik!
A hozzászólásokat köszönöm.