PHP - Comment envoyer un tableau à une autre page?
Je suis en train d'envoyer un tableau à une autre page.
Ce que j'ai essayé avant était:
page1
<input type='hidden' name='input_name' value='<?php print_r($array_name); ?>' />
Et page2
<?php
$passed_array = $_POST['input_name'];
?>
Maintenant comment dois-je faire $passed_array
agir comme un tableau?
Ou connaissez-vous une autre manière de résoudre ce problème?
Merci, Mike.
Edit: La raison pour laquelle je veux faire de cette façon est parce que j'ai besoin pour éviter les sessions et les cookies.
source d'informationauteur Mike | 2009-10-10
Vous devez vous connecter pour publier un commentaire.
Vous pourriez le mettre dans la session:
Ou si vous souhaitez l'envoyer via un formulaire, vous pouvez sérialiser:
La session a l'avantage que le client ne voit pas (donc ne peut pas y toucher) et il est plus rapide si le tableau est grand. L'inconvénient est qu'il pourrait se confondre si l'utilisateur a plusieurs onglets ouverts.
Edit: beaucoup de réponses sont ce qui suggère à l'aide de
name="input_name[]"
. Cela ne fonctionnera pas dans le cas général, - il aurait besoin d'être modifié pour prendre en charge les tableaux associatifs, et modifié beaucoup de choses à soutenir les tableaux multidimensionnels (dégueulasse!). Beaucoup mieux coller à sérialiser.Vous pourriez sérialiser le tableauqui le transforme en une chaîne de caractères, puis unserialize par la suite, qui tourne dans un tableau. Comme ceci:
et sur la page 2:
J'ai rencontré quelques problèmes avec les exemples ci-dessus, lorsque certaines valeurs dans mon tableau contenu des sauts de ligne. Certains de mes valeurs avaient aussi des caractères de langues étrangères qui
htmlentities
gardé le vissage. Ce qui suit a été ma solution.Dans la page que vous souhaitez passer le tableau de...
Dans la page qui reçoit le tableau...
Vous ne pouvez pas envoyer le tableau tout à la fois, vous n'aurez qu'à envoyer chaque valeur individuellement:
Ou regarder dans json ou de sérialisation.
Noter que de travailler avec un des tableaux, vous devez utiliser un POST que la forme de la méthode de transmission, comme a une limite de taille de quelque part autour de 1 024 caractères.
J'avais des sessions d'utilisation dans la mesure du possible.
Vous pouvez simplement
json_encode()
le tableau puis le passer comme une chaîne de caractères dans la requête POST. Utilisé à de nombreuses reprises. Fonctionne à chaque fois comme un jeune tittyChangement nom_entrée à nom_entrée[] dans votre balise input, puis mettre une balise input pour chaque valeur de la matrice.
http://phpprogramming.wordpress.com/2007/05/06/php-passing-array-using-hidden-form-element/