nr1
Here to stay
|
Hallo, suche eine Möglichkeit ein Array wieder an die Herkunftsseite zu übergeben. Sprich einfach in einem Formular mehr als nur eine einfache Variable weitergeben.
Tipps?
|
kleinerChemiker
Here to stay
|
|
nr1
Here to stay
|
<?php
$board=$_POST['board'];
print_r($board);
$board = array(array("X", "X", "X", "X"),
array("X", "X", "X", "X"),
array("X", "X", "X", "X"),
array("X", "X", "X", "X"));
?>
<form action="array.php" method="POST">
<input name="board" size="100" value="<?php echo $board ?>">
<input type="submit" value="Schuss">
</form>
Das hatte ich bis jetzt so in der Art schon, mal schauen wie das mit der Funktion geht.. //edit: Ok jetzt hab ichs so mit dem serialize gemacht. Das einzige Problem: Wenn ich die Variable mit echo ausgebe, kommt ein viel längerer (vollständiger) Text, wenn ich sie allerdings in das hidden field schreibe, fehlt der Großteil <?php
if (isset($board))
{
$board=$_POST['board'];
$board=unserialize($board);
}
else
{
$board = array(array("X", "X", "X", "X"),
array("X", "X", "X", "X"),
array("X", "X", "X", "X"),
array("X", "X", "X", "X"));
echo "<br><br>";
echo $board=serialize($board);
echo "<br><br>";
}
?>
<form action="array.php" method="POST">
<input name="board" value="<?php echo $board ?>">
<input type="submit" value="Schuss">
</form>
Bearbeitet von nr1 am 11.03.2006, 18:51
|
nr1
Here to stay
|
Inzwischen habe ich es schon einmal geschafft, dass ich das Array als String übergeben kann, und diesen String dann auf der neuen Seite wieder herausbekomme. Allerdings fehlt/funktioniert die Rückumwandlung in ein Array nicht.. <?php
if (isset($board))
{
$board=$_POST['board'];
$board=html_entity_decode(unserialize($board));
echo $board;
print_r($board);
}
else
{
$board = array(array("X", "X", "X", "X"),
array("X", "X", "X", "X"),
array("X", "X", "X", "X"),
array("X", "X", "X", "X"));
print_r($board);
echo "<br><br>";
echo $board=(htmlentities(serialize($board)));
echo "<br><br>";
}
?>
<form action="array.php" method="POST">
<input name="board" value="<?php echo $board ?>">
<input type="submit" value="Schuss">
</form>
|
kleinerChemiker
Here to stay
|
$board=html_entity_decode(unserialize($board)); müßte $board=unserialize(html_entity_decode($board)); sein.
hth
MIK
|
nr1
Here to stay
|
$board=html_entity_decode(unserialize($board)); müßte $board=unserialize(html_entity_decode($board)); sein. Das kann nicht stimmen, und funzt auch nicht, da ich ja zuerst serialisiere, und dann Sonderzeichen umwandle. Umgekehrt muss ich dann eben zuerst Sonderzeichen wegtun, und dann deserialisieren..
|
kleinerChemiker
Here to stay
|
mit html_entity_decode(unserialize($board)); tust du aber zuerst deserialisieren und dann sonderzeichen wegtun.
|
mat
AdministratorLegends never die
|
ich versteh echt nicht was ihr da macht..
|
Maehmann
OC Addicted
|
ich versteh echt nicht was ihr da macht.. ich auch nur so halbert ... Wenn du in einem Formular mehr als eine Variable weitergeben willst, warum machst du dann nicht pro Variable ein Hidden Field?
|
Luzandro
OC Addicted
|
Das kann nicht stimmen, und funzt auch nicht, da ich ja zuerst serialisiere, und dann Sonderzeichen umwandle. Umgekehrt muss ich dann eben zuerst Sonderzeichen wegtun, und dann deserialisieren.. funktioniert einwandfrei... <?php
if (!empty($_POST)) {
echo "postback...<p>";
$board=$_POST['board'];
echo "serialized (from form): ". $board ."<p>";
$board = unserialize(html_entity_decode($board));
echo "unserialized: <p>";
print_r($board);
$board = htmlentities(serialize($board));
}
else {
echo "init...<p>";
$board = array(array("X", "X", "X", "X"),
array("X", "X", "X", "X"),
array("X", "X", "X", "X"),
array("X", "X", "X", "X"));
print_r($board);
echo "<br><br>";
echo $board=(htmlentities(serialize($board)));
echo "<br><br>";
}
?>
<form action="array.php" method="POST">
<input name="board" value="<?php echo $board ?>">
<input type="submit" value="Schuss">
</form>
|