Sven Rautenberg: array aus formular mit hidden-field übergeben

Beitrag lesen

Moin!

dieses array wollte ich per
<input type="hidden" name="empf" value="<? echo $empf; ?>">
an die folge-seite übergeben.

Wenn man in PHP ein Array hat, und dieses Array einfach mit echo $arrayvariable ausgibt, wird der Text "Array" ausgegeben. Im Browser kommt dann diese Zeile an:

<input type="hidden" name="empf" value="Array">

nun will aber dieses array ums verr... nicht da ankommen.
echo $empf; ergibt einfach nur "Array" , was ja auch stimmt.

Logischerweise kriegst du in der Folgeseite als Formularwert unter anderem "empf=Array", was PHP verarbeitet und die Variable $empf mit dem String "Array" belegt.

Den Unterschied zwischen vorher und nachher bemerkst du nicht, wenn du mit echo arbeitest. var_dump($variable) wäre besser geeignet.

echo $empf[0]."<br>";echo $empf[1]."<br>";echo $empf[2]."<br>";...
ergibt dann:
A
r
r
.
.
.

Und hier greifst du mit $empf[x] auf die einzelnen Zeichen des Strings zu. Praktisch, aber für deine Aufgabe eher ungeeignet.

wo bitte sind denn nun meine werte geblieben????
die verschwinden doch nicht einfach ???

Doch, weil der Browser eben keinen blassen Schimmer von PHP und dessen Variablen hat.

Wenn du Arrays übergeben willst, mußt du daraus entweder einen ganz langen String machen (implode() und explode() hilft), oder eben mehrere versteckte Felder anlegen, die jedes einzelne Element übertragen.

- Sven Rautenberg