Envoie d'un tableau par formulaire

cs_patrickrgn Messages postés 28 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 30 décembre 2010 - 27 juin 2005 à 14:29
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 27 juin 2005 à 15:22
Bonjour à tous,
Est-ce que quelqu'un pourrait me dire comment proceder pour passer un tableau grâce à un formulaire.

Merci

Patrick

4 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2005 à 14:45
Hello,



c'est a dire ?



Tu veux faire quoi exactement ?
0
cs_patrickrgn Messages postés 28 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 30 décembre 2010
27 juin 2005 à 14:55
je sais comment faire passer une chaine de caractère avec ou mais je sais pas comment transferer un tableau d'une page à une autre par un formulaire.

Et st ce n'est pas possible comment le faire passer avec un lien hypertexte du type http://www.monsite.com?tableau=$tableau
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2005 à 14:59
Ok, voici un exemple :



<?php

$tab = array (1, 2, 3, 4, 5);



if (isset ($_POST['submit']) && $_POST['submit'] === 'yep') {

if (isset ($_POST['tab'])) {

$tab = unserialize (base64_decode ($_POST['tab']));

if (is_array ($tab)) {

print_r ($tab);

}

}

}

?>



<form method="post" action="?">

" />



</form>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2005 à 15:22
je me rends compte que c'est pas super clair en utilisant la meme variable, alors la meme chose avec une petite modif :



<?php

$tab = array (1, 2, 3, 4, 5);



if (isset ($_POST['submit']) && $_POST['submit'] === 'yep') {

if (isset ($_POST['tab'])) {

$tabRecup = unserialize (base64_decode ($_POST['tab']));

if (is_array ($tabRecup)) {

print_r ($tabRecup);

}

}

}

?>



<form method="post" action="?">

" />



</form>





Et des explications:



serialize () permet de transformer un tableau, un objet...et tout un
tas de choses en une chaine de caracteres. Justement, de maniere a
stocker cet objet (ca peut etre dans une base, un fichier, un post ou
un get justement, etc...). Cet "objet" gardera toutes ses proprietes.



base64_encode () est necessaire dans ce cas la, car il encode des
donnees (il est surtout utilise pour encoder des donnees binaires) de
maniere a les compresser d'une part, et a pouvoir les transbahuter
facilement. Ici, il est necessaire pour 2 raiosons :

- si ton tableau/objet est gros...ca va le reduire!

- serialize () utilise tout un tas de caracteres, dont des quotes
doubles et simples, ce qui pose probleme quand on le met dans la valeur
d'un input, evidemment. base64_encode n'utilise aucun quote.
0
Rejoignez-nous