Page 1 sur 1

formulaire dynamique dans un systemme de pagination

Posté : 13 mai 2011, 22:15
par raouen
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+++

Re: formulaire dynamique dans un systemme de pagination

Posté : 13 mai 2011, 23:18
par Ryle
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...

Re: formulaire dynamique dans un systemme de pagination

Posté : 14 mai 2011, 00:13
par raouen
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 :(