Pb PHP avec des liste déroulantes multiples

Résolu/Fermé
-PP- Messages postés 11 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 22 mai 2008 - 15 mai 2008 à 20:56
-PP- Messages postés 11 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 22 mai 2008 - 20 mai 2008 à 00:33
Bonjour tout le monde,

J'ai codé une fonction me permettant de créer automatiquement des listes déroulantes.
A l'aide d'une boucle, j'en affiche plusieurs en même temps.

Maintenant je voudrais récupérer les données issues de ces listes déroulantes, mais je n'y parviens pas...
Soit je n'ai que les resultats de la dernière liste, soit je n'en n'ai aucun (comme c'est le cas dans la version du code que je donne plus bas).

Je dois rédiger cette page de code uniquement en PHP.

Merci d'avance pour votre aide.

Voici le code :

Page :

<?php

include ("fonctions.php");
					
// en fonction du chiffre entré au dessus, on construit le nombre de cases correspondant
	echo '<form method="GET" name="f2" action="page_liste.php">';
	$n=$_GET["taille"];
	$i=0;
	while($i<$n)
	          {
		creer_liste("liste.'$i'");
		$i=$i+1;
                          }
	echo '<input type="hidden" name="h2" value="oui">';
	echo '<input type="submit" name="bt2" value="ok">';
	echo '</form>';

// affichage des resultats selectionnés :

                $k=0;
	echo 'Les valeurs choisies sont : ';
	while($k<$n)
	      {
		$k=$_GET["liste.'$k'"];
		echo $k;
		$k++;
	      }
				
?>


Fonction :

<?php

function creer_liste($liste)
{
$tab[0]="bleu";
$tab[1]="rouge";
$tab[2]="vert";
$tab[3]="jaune";

$j=count($tab); // On compte le nombre de cases du tableau

	echo "<select name ='$liste'>";

	//pour chaque case du tableau, crée une option dans la liste
	
                for ($i=0; $i<$j; $i++)
	{	$val = $tab[$i]; 
		echo"<OPTION VALUE ='$val'>$val";
		echo "</OPTION>";
	}
	echo "</SELECT>";
	
}

?>



Voila le code. Encore merci pour votre aide (et déjà rien qu'à toi qui a lu ce message jusqu'au bout ^^ !)

2 réponses

-PP- Messages postés 11 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 22 mai 2008 1
16 mai 2008 à 01:06
Je ne trouve toujours pas...
Personne n'a d'idée... ?
Merci d'avance pour les futures réponses !
0
bonjour

tu fais quelques erreurs dans ton script.
et la première est de ne pas nommer tes variables avec des nom explicatifs.
je m'explique, si on prend ta dernière boucle

$k=0;
echo 'Les valeurs choisies sont : ';
while($k<$n) {
$k=$_GET["liste.'$k'"];
echo $k;
$k++;
}

$k est un compteur mais aussi la valeur récupérée dans tes paramètres (bleu, jaune, rouge...)

si tu avais écris
$indiceParametres=0;
echo 'Les valeurs choisies sont : ';
while($indiceParametres<$nombreDeCases) {
$indiceParametres=$_GET["liste.'$indiceParametres'"];
echo $indiceParametres;
$indiceParametres++;
}
tu aurais tout de suite vu qu'il y a quelque chose qui cloche

idem avec le $i que tu utilises dans ta proc principale et aussi dans ta fonction mais pour des choses différentes.

voilà, reprends tes variables, ça fonctionnera et ça sera tout de suite beaucoup plus clair.
0
-PP- Messages postés 11 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 22 mai 2008 1
20 mai 2008 à 00:33
Merci beaucoup Bruno, mon code n'était pas assez clair en effet...

J'ai également remarqué que liste.'$indiceParametres' ne fonctionnait pas,
il fallait le noter liste$indiceParametres sans fioritures.

Merci de ton aide !
0