8791 sujets

Développement web côté serveur, CMS

bonjour,

Peut ton passer dans un formulaire un tableau dans un type hidden?

exemple

 
<input type="hidden" name="nom" value="<?php echo $tab?>" />


cela marche pas mais c'est pour montrer ce que je veux faire ...
Hello,

malheureusement les formulaires ne transportent que du texte du type chaine de caractère.

La solution serait d'imploder le tableau et de l'exploder à sa sortie.

Sinon développe un peu ce que tu veux faire, peut etre qu'on pourrait te souffler une autre méthode : )
ben en faite j'aimerai évité de faire ce genre de chose

<input type="hidden" name="name[]" value="52" />
<input type="hidden" name="name[]" value="53" />
<input type="hidden" name="name[]" value="54" />
<input type="hidden" name="name[]" value="55" />

et récupérer les donnée aprés juste avec $_post['name'] ; sans faire de explode ou des trucs du genre =)
Bonjour,

J'ai fais un petit script à partir d'un tuto que j'avais suivi, en espérant que ça t'aide :

<?php
//On test bien sur si le formulaire a déjà été envoyé
	if(isset($_POST['envoyer'])){
	
		$tabhide = array(); // On cré le tableau qui va récupérer les valeurs envoyées en input
		$i=0; //variable qui servira d'indice au futur tableau

		//boucle permettant de parcourir le tableau caché envoyé par form
		foreach ($_POST['tabhide'] as $contenu){
				$tabhide[$i++] = $contenu; //On rempli notre tableau vide avec les valeurs envoyées en Post
			}

		print_r($tabhide); //affichage du tableau pour tester
	}
?>
<form method="POST" name="formtest" action="testhidden.php">
<?php 
	//boucle a changer selon le nombre d'input à cacher
	for($i=0;$i<4;$i++)
	{
		$valeur=52; //initialisation de la variable à envoyer
		echo '<input type="hidden" name="tabhide[]" value="'.$valeur.'" />'; //tableau à envoyer => tabhide[]
		$valeur++; //incrémentation de la variable à envoyer
	}
	echo '<input type="submit" name="envoyer" value="Envoi" />';
?>
</form>


Il est à retoucher selon es besoins.
J'ai essayé de bien commenter mais je n'ai pas forcément l'habitude donc tu m'excusera si c'est pas très compréhensible =/
Salut,

plus généralement un foreach($_POST['name'] as $name) devrait suffire.
Modifié par Heyoan (17 Feb 2009 - 13:23)
hello tout le monde =)
sinon non le sérialize n'est pas la solution car il retourne un type de donnée différent que jattend et je n'ais pas envie de faire un traitement spécifique pour cela

ainsi comme il n 'existe pas de solution j'ai fait la bonne veille méthode comme ce que Shin propose plus haut à savoir la génération des input avec une boucle =)
voila..
Bonjour, ou pour pas t'embêter :
<input type = "hidden" name = "str" value = "<?php echo base64_encode( serialize( $tc ) ); ?>">


et dans le PHP :
<?php
  $tc = unserialize( base64_decode( $_POST["str"] ) );
?>
fabien.menager => La solution marche tré bien mais cela n'est pas adapté =) j'aurai aimé ne pas avoir besoin de faire un unserialize( base64_decode( $_POST["str"] ) );

sinon ta solution peut etre utile pour autre chose merci =)