Array in iframe mitschleppen

Thomasio

Erfahrenes Mitglied
Ich habe eine Seite mit einem <iframe> darin, wo eine andere Seite geladen wird.
Dieser anderen Seite kann ich beim ersten Aufruf via $_GET ein paar Werte mit auf den Weg geben.

Code:
<iframe name="iFrame" src="NeueSeite.php?xy=123">

Was ich nicht weiss

1) Kann ich in $_GET auch ein ganzes array rein packen, ohne dessen Bestandteile einzeln angeben zu müssen?
Wenn ja, wie lese ich das wieder aus?

2) Gibt es eine Möglichkeit sämtliche Arrays und/oder Werte aus $_GET mitzuschleifen, wenn der User im <iframe> einen Link klickt, ohne dass ich $_GET an jeden einzelnen Link anhängen muss?
 
1.) Arrays kannst du mit eckigen Klammern definieren, z.B.
Code:
script.php?arr1[]=blub&arr1[]=blub2&arr1[arr2][]=blub3&arr1[arr2][]=blub4
müsste diese URL folgendes $_GET-Array erzeugen:
PHP:
array(1) {
  ["arr1"]=>
  array(3) {
    [0]=>
    string(4) "blub"
    [1]=>
    string(5) "blub2"
    ["arr2"]=>
    array(2) {
      [0]=>
      string(5) "blub3"
      [1]=>
      string(5) "blub4"
    }
  }
}
PHP interpretiert diese GET-Parameter automatisch, sodass du wie gewohnt mit Arrays arbeiten kannst.

2.) Du könntest die Daten entweder in einem Cookie selbst oder besser in einer Session (mit Cookie) speichern.
 
Ob ich das jetzt richtig verstanden habe?

Wenn ich mache

Code:
$MyArray[] = "abc";
$MyArray[] = "def";
$MyArray[] = "ghi";

<iframe name="iFrame" src="NeueSeite.php?arr=$MyArray">

Dann bekomme ich in NeueSeite.php

Code:
$MyArray = $_GET['arr'];

oder wie?
 
Ich würde da noch zu bedenken geben, das man bei GET nur 255 zeichen inkl. der url. Könnte je nach array gesprengt werden und es würde schnell zu fehlern kommen
 
Danke für den Tipp.
Hätte ich übersehen, aber jetzt wo ich es weiss, kann ich das schon passend machen.

Bleibt nur die Frage, habe ich das richtig begriffen, oder ist meine Syntax falsch?
 
Probier es mal so:
PHP:
$array   = array();
$array[] = 'abc';
$array[] = 'def';
$array[] = 'ghi';
echo '<iframe name="iframe" src="neue_seite.php?' . http_build_query($array) . '"></iframe>';
 
Probiere es doch mal bitte selber aus! [phpf]var_dump[/phpf] oder auch [phpf]print_r[/phpf] helfen dir dabei.
 
Zurück