ugrás a tartalomhoz

iframe-ben lévő oldal frissítése paraméter átadással

lajos · 2021. Aug. 15. (V), 14.31
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.
 
1

Miért kell iframe?

Endyl · 2021. Aug. 15. (V), 19.26
Miért kell az iframe? Más a host? Ha nem, akkor a kód modularitását máshogy is meg lehet oldani, ami talán könnyebben kezelhető.

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.
2

Azért használok iframe-t mert

lajos · 2021. Aug. 15. (V), 20.25
Azért használok iframe-t mert a parent oldalon működik a menüsor és ez alatt az iframe-ben jelenítem meg a kiválasztott tartalmat.
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.
3

Továbbra sem világos, hogy

Endyl · 2021. Aug. 16. (H), 08.21
Továbbra sem világos, hogy miért kell az iframe. Más a parent frame hosztja, mint amit betöltesz az iframe-be? Ha nem, és csak a menü kódjának ismétlését akarod elkerülni, akkor arra a szerencsésebb megoldás valami template rendszer használata.

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.
6

Elnézést ha nem magyaráztam

lajos · 2021. Aug. 17. (K), 16.43
Elnézést ha nem magyaráztam elég pontosan a problémám.
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.
4

Az iframe elég elavult

inf · 2021. Aug. 16. (H), 13.25
Az iframe elég elavult technológia, nem igazán ajánlott már. Helyette XHR és valamilyen RPC, webszolgáltatás, API, stb. ajánlott ugyanerre.

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é.
5

Elavultnak nem mondanám, mert

Endyl · 2021. Aug. 16. (H), 16.19
Elavultnak nem mondanám, mert pl. más hostról widgetet máshogyan nem illesztesz az oldaladba (viszonylag biztonságosan), és biztonsági funkciókat is kap folyton, de ebben az esetben valszeg amit nyer vele az ember "egyszerűségben" azt sokszorosan megfizeti ilyesmi komplikációkkal. Szóval kár vesződni vele, ha nem a tanulás a cél. Még csak XHR-se kell alapból, csak sablon rendszer, meg sima navigáció linkekkel/get űrlapokkal bőven jó. Aztán ha odáig jut a helyzet, hogy "gyorsítani" kell rajta (bár ha hatalmas adatmennyiségről van szó, akkor a max néhány kilobájt html/css nem sokat számít), akkor el lehet gondolkodni aszinkron dolgokon.
7

Találtam megoldást! Kivettem

lajos · 2021. Aug. 17. (K), 16.51
Találtam megoldást!
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.