Récupérer des variables générées dans un formulaire

tintin
Invité n'ayant pas de compte PHPfrance

20 févr. 2012, 12:14

Bonjour,

Je suis en train de réaliser un qcm (qcm.php) qui s'autoappelle en générant des variables reponse1, reponse2, etc.
Le problème se pose quand je souhaite récupérer les valeurs prises par ces mêmes variables (voir la ligne commentée NE FONCTIONNE PAS !!!!!). Ma génération de variables semble mauvaise mais je ne vois pas où.

Merci pour votre aide.
$idSujet = $_SESSION['idSujet'];
if ($_SESSION['qcmValide']=='non')
	{
	if (!isset($_POST['reponse1']))
		{
		// On affiche le qcm
		}
	else
		{$_SESSION['qcmValide']='oui';
		$select = "SELECT * FROM qcm_questions WHERE `id_theme` = $idSujet";
		$req =mysql_query($select,$link) or die ('Erreur :'.mysql_errno().mysql_error());
		$nb_questions = mysql_num_rows($req);
		
		if ($nb_questions)
			{	// ôter après débug
			$i=0;
			$Bonne_reponse=0;
			while ($nb_questions=mysql_fetch_array($req))
				{
				$i++;
				$_SESSION['reponse[$i]'] = $_POST["'reponse".$i."'"];	// NE FONCTIONNE PAS !!!!!
				}
			}

		}
	}
	{echo "<form method=\"post\" action =\"qcm.php\" NAME=\"questionnaire\">";}
	$select = "SELECT * FROM qcm_questions WHERE id_theme=$idSujet";
	$result =mysql_query($select,$link) or die ('Erreur :'.mysql_errno().mysql_error());
	$rows = mysql_num_rows($result);
	if (isset($_GET['idSujet']))
		{
		$_SESSION['idSujet']=$_GET['idSujet'];
		}
		
	// Comptabilisation des enregistrements
		if ($rows) {
			$i=0;
			while ($rows=mysql_fetch_array($result))
				{
				$i++;
				echo '<input TYPE="RADIO" NAME="reponse'.$i.'" VALUE="A">'.$rows['choix1']."\n";}
				}}

	echo '</form>';

Eléphant du PHP | 179 Messages

20 févr. 2012, 12:23

$_POST["'reponse".$i."'"];

tu mets beaucoup de cotes la, je pense que le problème viens de la :

Essaie avec un simple


$_POST["reponse".$i];

tintin
Invité n'ayant pas de compte PHPfrance

21 févr. 2012, 09:56

Bonjour à tous,

Merci beaucoup Thibaud, ça fonctionne en effet, c'était un peu compliqué et peu efficace. Je clos cette discussion.
tintin