Mehrdimensionales Array per Formular übergeben
Schorsch
- php
0 Sven Rautenberg0 Menschelei
Oggy0 Schorsch0 Tom
Guten Morgen Forumsleute
Ich habe:
a.php b.php
------------- -------------
| | Formular | |
| mehrdimens- | > | Zugriff/ |
| inoales | -------------> | Ausgabe |
| Array | > | des Arrays |
| | | |
------------- -------------
Wie bringe ich ein mehrdimensionales Array von einer PHP Seite auf eine andere?
Ist es möglich?
Wenn nicht, wie bringt man dann einen mehrdimensionalen Array von a nach b?
Im Archiv und bei Google tönt es ziemlich unterschiedlich:
-speichere den Array in eine Datei und binde diese in b.php ein...
-produziere massenhaft <input type="hidden" name="testarray[]"....
-Kann man nicht
-Kann man nur für 1 Dimensionale Arrays
-Arbeite mit explode <-> implode
-Kann man, aber man muss mit zwei Funktionen (vergass, wie sie heissen) codieren und anschliessend decodieren... (klappte bei mir aber nicht)
<?php
$gesendet = $_POST['gesendet'];
$testarray = $_POST['testarray'];
if((!empty($gesendet)) AND ($gesendet == "gesendet")){print "<pre>"; print_r($testarray); print "</pre>";}
else{
$testarray = array( array(1 => 'a', 'three' => 1),
array(1 => 'b', 'three' => 2),
array(1 => 'c', 'three' => 3),
array(1 => 'd', 'three' => 4),
array(1 => 'e', 'three' => 5)
);
echo <<<gilegile
<FORM METHOD=POST ACTION="b.php">
<INPUT TYPE="hidden" name="gesendet" value="gesendet">
<INPUT TYPE="hidden" name="testarray" value="$testarray">
Wenn ich hier klicke, moechte ich den Testarray per Formular senden und auf der naechsten Seite ausgeben...<BR><BR>
<INPUT TYPE="submit" value="und ab die Post!">
</FORM>
gilegile;
}
?>
=================================================================
Dieses Skript gibt mir nur
Array
Seid gegrüsst
Schorsch
Moin!
Was bisher geschah:
Im Archiv und bei Google tönt es ziemlich unterschiedlich:
-speichere den Array in eine Datei und binde diese in b.php ein...
-produziere massenhaft <input type="hidden" name="testarray[]"....
-Kann man nicht
-Kann man nur für 1 Dimensionale Arrays
-Arbeite mit explode <-> implode
-Kann man, aber man muss mit zwei Funktionen (vergass, wie sie heissen) codieren und anschliessend decodieren... (klappte bei mir aber nicht)
Codieren und in einem Hidden-Feld übertragen funktioniert. Genauso funktionieren auch Sessions (wäre aber, wenn du nur dieses eine Array übertragen willst, etwas zuviel des Guten).
serialize() setzt dir jede beliebige Variable in einen Textstring um.
base64_encode() setzt dir alle Sonderzeichen eines Strings in vernünftige Buchstaben-ASCII-Werte um.
base64_decode() macht die Umsetzung der Sonderzeichen rückgängig.
unserialize() setzt dir einen String in eine Variable um.
In dieser Reihenfolge angewandt, kriegst du ein Array durch ein hidden-Feld an die Seite 2 übermittelt.
- Sven Rautenberg
moin...
schläft der sven eigentlich nie? ;-)
... und gute nacht
Oggy
Moin!
schläft der sven eigentlich nie? ;-)
Doch, von 3 bis 9 etwa.
Außerdem könnte ich die Frage zurückgeben. ;)
... und gute nacht
Ebenso.
- Sven Rautenberg
Moin!
Wow! Danke Sven! Entgegen meinen Erwartungen klappte es tasächlich, ist ja wunderbar.
1. serialize()
2. base64_encode()
3. im hidden Feld abschicken
4. base64_decode()
5. unserialize()
E voilà der Array steht in seiner mehrdimensionalen unversehrten Jungfräulichkeit erneut vor einem... genauso wie Mann sich's wünscht.
Schöner Tag allerseits
Schorsch
Hello,
Wow! Danke Sven! Entgegen meinen Erwartungen klappte es tasächlich, ist ja wunderbar.
Hättest Du mitgelesen, wärst Du schon eher drauf gestoßen.
[pref:t=63455&m=360065]
Leider lässt sich das aktuelle Forum noch nicht durchsuchen, oder?
Grüße (auch an die fleißigen Forengeister)
Tom