formulaire dynamique dans un systemme de pagination

Petit nouveau ! | 9 Messages

13 mai 2011, 22:15

bonjour tout le monde
comment faire le code du button suivant dans un systeme de pagination de formulaire dynamique avec nesecité de varible de session pour sauvgarde les valeur de page en page de la systeme de pagination
voici mon code
<?php

session_start();
$nb_questions[0]="";

for($i=1;$i<=$nb_questions[0];$i++){
if(isset($_POST['question' . $i]) )
{
$_SESSION['question' . $i]= $_POST['question' . $i];
echo $_SESSION['question' . $i];


}
}
?>
au debut de la page
le reste de code de pagination et de formulaire dynamique
include("connecion.php");
if( isset($_GET['page']) && is_numeric($_GET['page']) )

    $page = $_GET['page'];

else

    $page = 1;

// Nombre d'info par page

$pagination = 7;

// Numéro du 1er enregistrement à lire

$limit_start = ($page - 1) * $pagination;

// Préparation de la requête

$sql = "SELECT * FROM question WHERE id_categorie='1' LIMIT $limit_start, $pagination";

// Requête SQL

$resultat = mysql_query($sql);

// Traitement et affichage des données

									

while ( $donnee = mysql_fetch_assoc($resultat) ) {
echo"<div id='question73'>";
					echo"<table width='75%' align='center' border='1' style='border-collapse: collapse' bordercolor='#0099CC' bgcolor='white'>";

						echo"<tr>";

							echo"<td align='center'>";

								echo"<table width='100%' cellspacing='0'>";

									echo"<tr>";

										echo"<td align='center' bgcolor='#E5F9FF'>";

											echo"<font size='2' color='#0033CC'><b><label for='5X21X73'>".$donnee['libelle_quest']."</br><font size='2' color='#0099FF'>(".$donnee['remarques'].")</i><b/></label>";

									echo"</tr>";
									echo"<tr>";

										echo"<td align='center'>";
         $query_rep = "SELECT *
                    FROM reponse
                    WHERE id_question = ".$donnee['id_question']." ORDER BY id_question";
        $result = mysql_query($query_rep) OR die("Erreur");
														echo"<table class='question'>";
														


 while ( $reponse = mysql_fetch_array($result) )
        {
			echo"<tr>";
echo"<td>&nbsp;</td>";
			echo"<td align='left' class='answertext'>";
			if($donnee['type']=="Multichoix")
			{
				echo"<input type=\"checkbox\" name=\"question".$donnee['id_question']."[]\"value=\"".$reponse['libelle_rep']."\" />";
				echo"<label class=\"answertext\">".$reponse['libelle_rep']."</label>";
                                         echo "<br />";
			}
			else if($donnee['type']=="choix unique")
			{               
           	 echo "<INPUT TYPE=\"radio\" NAME=\"question".$donnee['id_question']."\" VALUE=\"".$reponse['libelle_rep']."\"";
			 if(isset($_SESSION['question' . $donnee['id_question']]) AND $_SESSION['question' . $donnee['id_question']]===$reponse['libelle_rep']) {echo "checked";} 
				echo "/>";
                    echo $reponse['libelle_rep']."<BR>";
					
		}
			
        }//fin while reponses
			if($donnee['type']=="champs texte")
			echo"<td align=\"center\"/><input type=\"text\" class=\"text\" name=\"question".$donnee['id_question']."\" size=\"8\"/>";
			else if($donnee['type']=="textarea")
			{
					
			echo "<td align=\"center\"/><textarea name=\"question".$donnee['id_question']."\" class=\"textarea\" rows=\"5\" cols=\"40\"></textarea>";	
			}echo "<br />";
echo"</td>";
					echo"<td>&nbsp;</td>";
				echo"</tr>";
			echo"</table>";
										echo"</td>";

									echo"</tr>";

									echo"<tr>";

										echo"<td align='center' bgcolor='#E5F9FF'>";

											echo"<font size='1'></font>";
     
										echo"</td>";

									echo"</tr>";

								echo"</table>";

							echo"</td>";


						echo"</tr>";

					echo"</table>";

					echo"<table>";

						echo"<tr>";

							echo"<td height='1'></td>";

						echo"</tr>";

					echo"</table>";
				echo"</div>";

	//fin while question
                  


    /* ICI VOTRE CODE NORMAL */
    /* Affichage d'un élément */
}

// Nb d'enregistrement total

$nb_total = mysql_query('SELECT COUNT(*) AS id_question FROM question WHERE id_categorie = 1 ');

$nb_total = mysql_fetch_array($nb_total);

$nb_total = $nb_total['id_question'];

 

// Pagination

$nb_pages = ceil($nb_total / $pagination);
            //Si il n'y a pas plus d'une page on renvoit rien...  
	

?>
les buton précédent/suivant
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> 

<input type="button" name="page_x_1" onclick="JavaScript:window.open('?page=<?php echo ($_GET['page']-1);?>','_self');"  value="PAGE PRECEDENTE"> 
<input type="submit" name="page_x_2" onsubmit="JavaScript:window.open('?page=<?php echo ($_GET['page']+1);if(($_GET['page']+1)> $nb_pages) require('essai.php'); ?>','_self');"  value="PAGE suivante"> 


</form>

je sais pas comment faire passer mes varible de sessions de page en page dans le formulaire dynamique :(

merci
a+++

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 mai 2011, 23:18

je sais pas comment faire passer mes varible de sessions de page en page dans le formulaire dynamique :(
Ce qui est bien avec les sessions, c'est que justement elles sont conservées de page en page et t'évitent donc d'avoir à faire passer les variables que tu stockes dedans de l'une à l'autre :)

Quant à ton code, tu fais une boucle de 1 à $nb_questions[0] , sauf que deux lignes au dessus, tu dis que $nb_questions[0] est une chaine de caractères vide... du coup ta boucle risque pas d'aller bien loin, car pour php, ton $i=1 sera toujours inférieur à une chaine vide (interprétée comme un 0) ... et puisque tu ne rentres pas dans la boucle, tu ne stockes rien dans ta session...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 9 Messages

14 mai 2011, 00:13

salut !
oui je sais que le code de sessions contient des erreurs mais j'arrive pas a le corriger pour qu'il s'adapte au pagination :(