formulaire et script intermediaire [suite... avec tableau]
Le
Denis Bitouze

Bonjour,
je fais suite au fil de discussion concernant la conservation d'une
variable ($MaVariable ci-dessous) lors du traitement d'un formulaire.
Les solutions proposées par Jedi121 et Eric Feldstein, utilisant :
<input type="hidden" name="MaVariable" value="<?php echo $MaVariable;
?>">
répondent au problème que je rencontrais.
Maintenant, mon formulaire s'étoffe et j'ai un grand nombre de
variables à conserver. La solution consistant à mettre ces variables
dans un tableau et à passer chacune des entrées du tableau dans une
instruction :
<input type="hidden" name="MonTableau[0]" value="<?php echo
$MonTableau[0];?>">
<input type="hidden" name="MonTableau[1]" value="<?php echo
$MonTableau[1];?>">
fonctionne. Mais c'est un peu lourd et j'ai donc tenté de passer, en
UNE SEULE instruction :
<input type="hidden" name="MonTableau" value="<?php echo
$MonTableau;?>">
toute la variable tableau mais ça ne fonctionne pas. Ceci est résumé
dans les 3 scripts complets minimaux suivants où la variable
MonTableauBis ne contient pas, dans le script final, les données qu'il
contenait dans le script intermédiaire :
// Script de saisie
<h1>
Essai de saisie
</h1>
<form name="formulaire" method="post" action="intermediaire.php"
enctype="multipart/form-data">
<input name="MonTableau[]" type=text sizeP><br>
<input name="MonTableau[]" type=text sizeP><br>
<input name="Submit" type="submit" class="button" value="Vérifier">
// Script intermédiaire de vérification
<h1>
Essai intermédiaire
</h1>
<?
echo "Vous avez inscrit le terme n°1 : <b>" . $MonTableau[0] .
"</b>"; echo "<br>";
echo "Vous avez inscrit le terme n°2 : <b>" . $MonTableau[1] .
"</b>"; echo "<br>";
$MonTableauBis[]=$MonTableau[0];
$MonTableauBis[]=$MonTableau[1];
?>
<p>
<form name="formulaire" method="post" action="final.php"
enctype="multipart/form-data">
<input type="hidden" name="MonTableauBis" value="<?php echo
$MonTableauBis;?>">
<input type="hidden" name="MonTableau[0]" value="<?php echo
$MonTableau[0];?>">
<inputtype="hidden" name="MonTableau[1]" value="<?php echo
$MonTableau[1];?>">
<input name="Submit" type="submit" class="button"
value="Confirmer"></p>
// Script final de transfert
// Pour ne pas alourdir, j'ai omis le code du transfert proprement dit
// mais celui-ci a bien sûr besoin de savoir ce que contient la
// variable "MaVariable".
<h1>
Essai final
</h1>
<h2>
Avec MonTableau :
</h2>
<?
echo "Le terme n°1 : <b>" . $MonTableau[0] . "</b> a été
transmis."; echo "<br>";
echo "Le terme n°2 : <b>" . $MonTableau[1] . "</b> a été
transmis."; echo "<br>";
?>
<h2>
Avec MonTableauBis :
</h2>
<?
echo "Le terme n°1 : <b>" . $MonTableauBis[0] . "</b> a été
transmis."; echo "<br>";
echo "Le terme n°2 : <b>" . $MonTableauBis[1] . "</b> a été
transmis."; echo "<br>";
?>
Merci d'avance pour toute idée pour solutionner ce problème.
--
Denis.
je fais suite au fil de discussion concernant la conservation d'une
variable ($MaVariable ci-dessous) lors du traitement d'un formulaire.
Les solutions proposées par Jedi121 et Eric Feldstein, utilisant :
<input type="hidden" name="MaVariable" value="<?php echo $MaVariable;
?>">
répondent au problème que je rencontrais.
Maintenant, mon formulaire s'étoffe et j'ai un grand nombre de
variables à conserver. La solution consistant à mettre ces variables
dans un tableau et à passer chacune des entrées du tableau dans une
instruction :
<input type="hidden" name="MonTableau[0]" value="<?php echo
$MonTableau[0];?>">
<input type="hidden" name="MonTableau[1]" value="<?php echo
$MonTableau[1];?>">
fonctionne. Mais c'est un peu lourd et j'ai donc tenté de passer, en
UNE SEULE instruction :
<input type="hidden" name="MonTableau" value="<?php echo
$MonTableau;?>">
toute la variable tableau mais ça ne fonctionne pas. Ceci est résumé
dans les 3 scripts complets minimaux suivants où la variable
MonTableauBis ne contient pas, dans le script final, les données qu'il
contenait dans le script intermédiaire :
// Script de saisie
<h1>
Essai de saisie
</h1>
<form name="formulaire" method="post" action="intermediaire.php"
enctype="multipart/form-data">
<input name="MonTableau[]" type=text sizeP><br>
<input name="MonTableau[]" type=text sizeP><br>
<input name="Submit" type="submit" class="button" value="Vérifier">
// Script intermédiaire de vérification
<h1>
Essai intermédiaire
</h1>
<?
echo "Vous avez inscrit le terme n°1 : <b>" . $MonTableau[0] .
"</b>"; echo "<br>";
echo "Vous avez inscrit le terme n°2 : <b>" . $MonTableau[1] .
"</b>"; echo "<br>";
$MonTableauBis[]=$MonTableau[0];
$MonTableauBis[]=$MonTableau[1];
?>
<p>
<form name="formulaire" method="post" action="final.php"
enctype="multipart/form-data">
<input type="hidden" name="MonTableauBis" value="<?php echo
$MonTableauBis;?>">
<input type="hidden" name="MonTableau[0]" value="<?php echo
$MonTableau[0];?>">
<inputtype="hidden" name="MonTableau[1]" value="<?php echo
$MonTableau[1];?>">
<input name="Submit" type="submit" class="button"
value="Confirmer"></p>
// Script final de transfert
// Pour ne pas alourdir, j'ai omis le code du transfert proprement dit
// mais celui-ci a bien sûr besoin de savoir ce que contient la
// variable "MaVariable".
<h1>
Essai final
</h1>
<h2>
Avec MonTableau :
</h2>
<?
echo "Le terme n°1 : <b>" . $MonTableau[0] . "</b> a été
transmis."; echo "<br>";
echo "Le terme n°2 : <b>" . $MonTableau[1] . "</b> a été
transmis."; echo "<br>";
?>
<h2>
Avec MonTableauBis :
</h2>
<?
echo "Le terme n°1 : <b>" . $MonTableauBis[0] . "</b> a été
transmis."; echo "<br>";
echo "Le terme n°2 : <b>" . $MonTableauBis[1] . "</b> a été
transmis."; echo "<br>";
?>
Merci d'avance pour toute idée pour solutionner ce problème.
--
Denis.
PHP s'est déjà décarcassé pour toi
coté formulaire :
coté traitement
foreach($_POST as $key => $valeur)
// $valeur contient les valeurs de toutes les variables du formulaire
// ... c'est y pas beau ?
Vincent
--
http://sommets.org
http://faqfclphp.free.fr/#ss2.15