Variable aus übergeordnetem Frame holen.

Thomasio

Erfahrenes Mitglied
Ich habe eine mehrsprachige Seite, wo die Spache global in $language steht.
In der Seite gibt es einen <iframe>, ebenfalls mehrsprachig, aber der hat seine eigenen Variablen, auch seine eigene Sprache, wenn auch unter anderem Variablenamen.

Nun möchte ich innerhalb vom <iframe> einen Link basteln, der die gesamte Seite aktualisiert, ohne dass mir dabei die Spracheinstellung verloren geht.
Etwa so

Code:
<a href="../index.php?language=$language" target="_top">Seite aktualisieren</a>

Die Frage ist also, wie komme ich innerhalb vom <iframe> an den Wert der Variable ran?
 
Hi,
muss das Ganze denn ein mit einem <Iframe> gelöst werden?
Mit einem entsprechend formatierten <div> und einem include() ist das meiner Meinung nach besser gelöst und du kannst sogar auf alle Variablen zugreifen die vorher deklariert wurden.
 
Du könntest die Variable nach dem ersten Aufruf in der Session oder einem Cookie speichern und von dort wieder abrufen.
 
Nein, das muss eine separate Seite sein, weil das 2 völlig verschiedene Seiten sind, die beide mit diversen Headern, Cookies, usw. arbeiten, sprich das ist anders nicht unter einen Hut zu bringen.
Effektiv sollen die sogar so weit voneinander getrennt sein, dass sie auch auf verschiedenen Servern liegen könnten, nur dass ich dann halt einen absoluten Link machen müsste.
 
Wie wär es denn wenn du dem Iframe eine GET-Variable mitschickst und dann innerhalb des <iframe> darauf zugreifst.

PHP:
echo '<iframe src=".../index.php?language='.$language.'" width="400" height="400" name="iframe">';

Und im <iframe> dann:
PHP:
$language = (isset($_GET['language'])) ? $_GET['language'] : 'default_lang';
 
Zuletzt bearbeitet:
Das soll mir Recht sein, ich weiss nur nicht, inwieweit der <iframe> seine GET-Variablen behält, wenn z.B. im <iframe> ein Link geklickt wird, der innerhalb vom <iframe> eine andere Seite aufruft?
 
Um das zu behalten kannst du den Wert ja sofort in die Session vom <iframe> speicher.
Hab das alles so auch noch nicht ausporbiert, war einfach mal ne Idee.

Im <iframe>:
PHP:
if (isset($_GET['language']))
{
     $language = $_GET['language']
     $_Session['language'] = $language;
}
else if(isset($_Session['language'])) 
{
     $language = $_Session['language'];
}
else
{
    $language = 'default_lang';
}
 
Die Idee ist gar nicht schlecht.
Ich hatte schon was ähnliches mit JavaScript überlegt.
Dem <iframe> einen Namen geben oder so und diesen dann via JavaScript auslesen, aber von JavaScript habe ich fast gar keine Ahnung, insbesondere nicht von Syntax.
Irgendwie so

Code:
<iframe name="$language">

Code:
<a href="../index.php?language=document.name" target="_top">Seite aktualisieren</a>
 
So wie ich das beurteilen kann, kann das so nicht klappen.
Der Name des <iframe> bezieht sich ja nicht auf den Namen des Dokumenten selbst...

Hast du denn mal meine Lösung ausprobiert?
 
Zurück