Button suivant

debutantephp Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

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
Merci
a++

4 réponses

Utilisateur anonyme
 
Bonjour,

Vous n'êtes pas obligé de passer par une session.
Vous faites un formulaire contenu dans plusieurs div
la première est visite, les autres sont cachées.
Quand vous cliquez sur le bouton suivant, vous cachez celle où vous êtes et affichez la suivante.

Sinon avec une session et bien vous faites autant de formulaires que de pages, le bouton suivant fait un submit vers le formulaire suivant, vous stoquez les variables postées dans la session à chaque page

genre $_SESSION['_post_NOM'] = $_POST['NOM'];

et vous avancez jusqu'à la fin du formulaire ou là vous finissez par traiter tous les champs de la session commençant par '_post_'

Cordialement
0
debutantephp Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
slaut
oui j'utilise les sessions pour cela je recupere mes varibles avec un tableau
<?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];
  
	}
}
?>

ensuite mon code html
et je récupère mon formulaire dans la base de donné avec 7question dans la page
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"<input type=\"text\" name=\"question".$donnee['id_question']."\" size=\"30\"/>";
			else if($donnee['type']=="textarea")
			{
			echo "< textarea type=\"textarea\" name=\"question".$donnee['id_question']."\" rows=\"5\" cols=\"40\"/>";		
			}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...  
	for ($i = 1 ; $i = $nb_pages ; $i++) {

    if ($i == $page ){

        echo " $i";
	}
		else {
        echo " <a href=\"?page=$i\">$i</a> ";
		}
 
		echo '/';
  
}

?>
</td>
		  </tr>
		</table>

		<table><tr><td height='2'></td></tr></table>


<!-- PRESENT THE NAVIGATOR -->
		<table width='100%' align='center' bgcolor='#E5F9FF'>
		 <tr>
		  <td align='left' valign='middle' height='40'>
		    <!--  					<div class='clearall'><a href='/middlewaresurvey/index.php?sid=5&amp;move=clearall' onClick='return confirm("Are you sure you want to clear all your responses?")'>[Exit and Clear Survey]</a></div>
             s){
             -->
   
 <form method="get" action=""> 

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


</form>
0
Utilisateur anonyme
 
Ouf c'est long ! Je vais regarder mais bon...

Vous savez qu'il existe des outils tout fait en PHP pour faire ce genre de chose ? Genre Lime Survey ?
0
debutantephp Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
ben oui désole je sais que c long.... juste pour vous montre mon syteme de pagination et mes buttons et comment je traire mes variables de sessions.
ben j'ai po une idée a propos de Genre Lime Survey
0
Utilisateur anonyme
 
$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];
  
	}
}


C'est étrange comme code

$nb_questions[0]="", d'accord, donc $i<=$nb_questions|0] n'a aucun sens.

1 <= "" ne signifie rien en programmation, à priori ça rend false (pas vérifié) donc la boucle ne doit pas se faire
0
debutantephp Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
ben parcque quand je met pas $nb_questions[0]=""; il me signale un erreur undfined nb_question .
ben ce code marche quand je le tste juste sur 2 page je trouve mes varible de sesion et pa de probleme je veux qu'il marche avec pagination un nombre n'est pas définis de pages aussi
le <form methode='post' action=''> je sais pa quoi metrre dans le action et comment palacer le button submit ????
0
Utilisateur anonyme
 
Ca marche peut-être mais bon...

A quoi sert cette variable $nb_questions[0] ???
0
debutantephp Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
c'est un array qui contient tou mes varibles question
et chaque varible en laffecte dans une variable session
0
Utilisateur anonyme
 
Bonjour,

Non, $nb_questions[0], ne contient jamais rien d'après ce que je voie de votre code. Vous l'instanciez à "" et c'est tout.
Si dans une autre page, vous avez remplit ce tableau, lorsque vous appelez votre nouvelle page, cette variable se retouvre à nouveau non définie. En PHP les variables on une portée limitée à la page, sauf vi vous passez par le mécanisme des sessions.
0