formulaire envoyant un tableau de valeurs

latex
Invité n'ayant pas de compte PHPfrance

22 mai 2005, 15:28

Salut à tous,

Voilà mon soucis :
Je voudrai transmettre un tableau d'une page à une autre.
J'ai penser faire ça avec un formulaire, j'ai réussi. Mais c'était sur un ftp et quelqu'un de mon projet à supprimé mon fichier en remettant un ancien à la place... bref j'ai perdu mon début de code.

Depuis 24H, j'essaye de le refaire mais je n'arrive plus à renvoyer le tableau, ou plutot si, j'y arrive, mais il ne contient pas mes valeurs mais seulement 'Array' à l'index 0.

un peu de code devrait vous aider à comprendre :
$tabl_id[]=$id_perso; // cette ligne est dans une boucle : le tableau se remplie au fur et a mesure

$nb_id=count($tabl_id);
echo $nb_id;		// la, je vérifie que le tableau est bien remplie (pas de probleme jusque la)


// Voila le petit formulaire qui doit renvoyer le tableau de valeurs :

<form action='affichage.php' method='get' target='_parent'>
<input type='hidden' value=$tabl_id name='id'>
<input type='submit' value='diaporama' class='bouton' target='parent'>
et ensuite la page traitant le formulaire :
// voila comment j'ai espere recuperer ma variable :

$id_perso[]=$_GET['id']; // je recupere la chaine de caracteres 'Array' alors que je voulais un tableau contenant des valeurs

Ma question est donc :
Comment je fais pour récupérer un tableau de valeurs ?


Si vous comprennez pas bien ma question, n'hésitez pas...


Merci à tous

Mammouth du PHP | 19672 Messages

22 mai 2005, 15:49

Salut,
ATTENTION, on ne mélange pas du HTML et du PHP n'importe comment :
<form action='affichage.php' method='get' target='_parent'>
<input type='hidden' value="<?php echo($tabl_id); ?>" name='id'>
<input type='submit' value='diaporama' class='bouton' target='parent'>
Si tu mets directement le nom de la variable, le navigateur ne saura pas l'interpréter et enverra $tabl_id textuellement.

ceci dit, c'est loin d'être tout: tu as défini $tabl_id au départ comme un tableau, il est normal qu'à l'arrivée tu aies aussi un tableau. Ce que tu pourrais faire, ce serait d'envoyer autant de champs cachés que tu as de valeurs dans le tableau. (Au passage, la méthode GET n'est pas appropriée pour envoyer des valeurs de champ caché puisque ces valeurs vont être affichées en clair dans l'url. Mais bon, tu peux faire ceci:
<?php
$tabl_id[]=$id_perso; // cette ligne est dans une boucle : le tableau se remplie au fur et a mesure

$nb_id=count($tabl_id);
echo $nb_id;        // la, je vérifie que le tableau est bien remplie (pas de probleme jusque la)
?>

<!-- Voila le petit formulaire qui doit renvoyer le tableau de valeurs : -->

<form action='affichage.php' method='get' target='_parent'>
<?php
/* On crée une boucle qui va générer dynamiquement les champs cachés nécessaires */
for($i = 0; $i < count($tabl_id); $i++)
{
    /* Pour chaque valeur contenu dans le tableau, on modifie la valeur de l'attribut "name" avec une valeur incrémentée à chaque tour */
?>
<input type='hidden' value=<?php echo($tabl_id[$i]); ?> name='id<?php echo($i); ?>'>
<?php
}
/* On ajoute un autre champ caché qui précise le nombre de champs pour la récupération. */
?>
<input type='hidden' value=<?php echo($nb_id); ?> name='nb_chmps'>
<input type='submit' value='diaporama' class='bouton' target='parent'>
Pour récupérer les valeurs, tu refais une boucle sur le même principe.

J'ai laissé le method="get", mais je te recommande vivement de le faire en "post"
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

LaTeX
Invité n'ayant pas de compte PHPfrance

22 mai 2005, 16:26

Bon, je viens de faire les essais, ça fonctionne.

merci Cyrano, merci, merci :D



C'est bien toi qui a le plus long (ok... je sors...)