Autor Zpráva
Trax
Profil
Ahoj lidi, zajímalo by mě, jestli jde nějakým způsobem z iframe dostat PHP proměnnou a jestli jo, tak jakým.

Našel jsem tu jen jak dostat proměnnou do iframe, ale já to potřebuju obráceně. Díky za pomoc :)

Moderátor Chamurappi: Původní kategorie: JavaScript, přesouvám po příspěvku [#7].
_es
Profil
Tvoj dotaz je nezmyselný. prečítaj si Nejčastější potíže s PHP (FAQ)
Trax
Profil
No to mi nijak nepomohlo. Já nepotřebuju dostat obsah php proměnné do stránky v iframe, ale právě naopak. Potřebuju ten obsah PHP proměnné vytáhnout z toho iframe do stránky, kde je ten iframe vložený. :)

Když to vysvětlím po lopatě... :D Mám stránku A a stránku B. Ná stránce A je vložený iframe, který zobrazuje (má src) stránku B. Na stránce B mám nějakou php proměnnou, která obsahuje nějakou informaci, a právě tuto informaci potřebuji dostat na stránku A. :)
_es
Profil
Trax:
Používaš nezmyselné termíny ako „Na stránce B mám nějakou php proměnnou“. Ako má prehliadač vôbec vedieť, že tá „stránka B“ je generovaná PHP skriptom? Tak daj do tej „stránky A“ rovno to, čo chceš, aby tam bolo.
peta
Profil
Trax:
Javascript s php nema nic spolecne. Server vygeneruje html kod z php. Prohlizec dostane html kod. Dostane html kod! Zadny php. V html kodu muze byt js.
Ja mam treba v iframu tento kod:
<?php
    $out = chating($req,$CFG);
    header("Content-Type: text/html; charset=utf-8");
    echo vsprintf('<script type="text/javascript">parent.window.receive(%1$s,%2$s,"%3$s","%4$s");</script>',$out);
?>
Na strance, ve ktere ten frame mam vlozeny, mam pak kod
<script type="text/javascript">
function receive(func,error_id,str,userdata)
{
var time, patt, cols, i;
// username
USER = userdata.indexOf(";")>=0 ? userdata.split(";") : ["",""];
objId('roomuser').innerHTML = USER[1];
// error
time = new Date().toString().replace(/GMT.+$|^(.*?\s){4}/g,"") + " ";
if ((error_id*=1) && error_id>0 && LNG_errors[error_id])
    {
    objId('warnings').innerHTML = time + LNG_errors[error_id] + "<br>" + objId('warnings').innerHTML + str;
    }
// room rows
//...
}
</script>

Jak jsem na to prisel? Nasel jsem si to na jakpsatweb.
Objekt window » Vlastnosti objektu window (ostatní)
---
Jo, jeste jsem si vzpomnel na jeden detail. Ale to mozna vis. IE ma problem s ramy a session, je treba tam uvest kod
header('P3P: CP="CAO PSA OUR"');    // aby session fungovala spravne v iframe v IE
Joker
Profil
Trax:
Já nepotřebuju dostat obsah php proměnné do stránky v iframe, ale právě naopak.
Ten odkaz co posílal v [#2] _es řeší komunikaci mezi PHP a JS oběma směry.
Trax
Profil
Moc se omlouvám lidi. Až teď jsem si všiml, že jsem to omylem hodil do diskuse na JS :( Asi jsem se uklik. Pardon.. Jedná se čistě o PHP a HTML.
_es
Profil
Trax:
Jedná se čistě o PHP a HTML.
V tom prípade je ale tiež nezmyselné uvažovať o nejakej „premennej z iframe“ či „premennej do iframe“.

Ak je v iframe v src odkaz na na PHP skript, tak ten je spustený mimo PHP skriptu generujúceho celú stránku (ak je generovaná cez PHP).
Trax
Profil
_es:
Do iframe by šla normálně dostat právě přes src pomocí $_GET, ale nevím jak s ní ven. :)
_es
Profil
Trax:
nevím jak s ní ven.
Ako „ven“? Kedy? Ako? Vôbec ti nie je rozumieť o čo sa pokúšaš, či o čo ide.
donny
Profil
Takže ak som ťa správne pochopil tak máš niečo takéto:
<h1>HTML stránka</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sit amet viverra lectus. Curabitur porttitor, ante sodales euismod pretium, ligula dolor varius metus, vitae accumsan nulla dolor a urna. Curabitur a eros at risus pellentesque porttitor. Aenean venenatis luctus augue, vel aliquam justo ullamcorper bibendum. Etiam a lacus enim. Morbi vitae aliquam felis. Proin dignissim sagittis nibh, a accumsan erat tempus ut. Nam sem augue, rhoncus id ultrices id, mattis ut purus. Donec bibendum eros et urna interdum convallis. Mauris molestie pharetra urna, id facilisis velit ultricies scelerisque. Vestibulum nisl velit, feugiat ac ullamcorper eget, consequat ac nibh. </p>

<iframe src="stranka.php">

A chcel by si vpísať niečo čo si vykúzlil v tom php súbore do H1?

V takom prípade by sa to dalo docieliť len pomocou Ajaxu, pretože prehliadač vykonáva všetko v poradí v akom dostane výsledné HTML. Musíš teda počkať kým php parser vygeneruje čo potrebuješ a potom Ajaxom vpísať ten výsledok do H1 (alebo iného HTML objektu) cez jeho id napr. cez innerHTML

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: