Pagination et checkbox

a marqué ce sujet comme résolu.

Bonjour je fais un quizz en php . j’ai un petit soucis je voudrais bien, que mes checkbox soit en rapport avec une session id de l’utilisateur, sachant que j’ai paginer les question et que je voudrais que l’utilisateur puisse revenir en arrière, et cela vas de soit garder les réponses mis précédemment. Si vous avez des idées, moi actuellement mon cerveau fait "off". Merci voici la bête

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<!DOCTYPE html>
<head>
<html>
<meta charset="utf-8">
</head>
<body>

<?php
include_once 'session_start.php';
include_once "connection.php";
include_once "user.php";
//Paramétre des pages

$page = (!empty($_GET['page']) ? $_GET['page'] : 1);
$limite = 1;
$debut = ($page - 1) * $limite;
if($page <= 0) {
    $page = 1;
}

//Apelle des données sur la BDD

$query = 'SELECT SQL_CALC_FOUND_ROWS * FROM `question` WHERE `question_liaison_test` = 66 ORDER BY `question_id` LIMIT :limite OFFSET :debut';
$query = $bdd->prepare($query);
$query->bindValue(':debut', $debut, PDO::PARAM_INT);
$query->bindValue(':limite', $limite, PDO::PARAM_INT);
$query->execute();

//compte combien y'a de données

$resultFoundRows = $bdd->query('SELECT found_rows()');
$nombreelementstotal = $resultFoundRows -> fetchColumn();
var_dump($_SESSION);

//Affiche les données

while($element = $query->fetch()){?>

<form method="get" name="page">
    <input type="text" value="<?php echo $element['question_question'];?>" name="question[]" readonly><br>
    <input type="checkbox" value="<?php echo $element['reponse1'];?>" name="reponse[]" id="R"> <?php echo $element['reponse1'];?><br>
    <input type="checkbox" value="<?php echo $element['reponse2'];?>" name="reponse[]" id="R"> <?php echo $element['reponse2'];?><br>
    <input type="checkbox" value="<?php echo $element['reponse3'];?>" name="reponse[]" id="R"> <?php echo $element['reponse3'];?><br>
    <input type="checkbox" value="<?php echo $element['reponse4'];?>" name="reponse[]" id="R"> <?php echo $element['reponse4'];?><br>
</form>
<?php
}?>

 <div class="box">
<?php
$nombreDePages = ceil($nombreelementstotal / $limite);

if ($_GET['page'] == 30){
echo'<input type="submit" value="valider" name"page">';
}
if($_GET['page'] < 31){
echo '<ul class="pagination">';
if ($page > 1):
    ?><a class="link arrowg" href="?page=<?php echo $page - 1; ?>">Question précédente</a> - <?php
endif;
for ($i = 1; $i <= $nombreDePages; $i++):
    ?><ul class="pagination"><a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a></ul> <?php
endfor;
if ($page < $nombreDePages):
    ?>- <a class="link arrowd"href="?page=<?php echo $page + 1; ?>">Question suivante</a><?php
endif;
}
?>

</ul>
 </div>
</body>
</html>
+0 -0

Salut !

Il devrait te suffire de regarder dans la page si tu as des réponses aux questions que tu affiches.

Les réponses, tu les enregistres en session, donc ? Tu peux donc tester les réponses données et cocher les cases en fonction (ce qui revient à ajouter l’attribut checked="checked" aux <input /> dans ton cas).

Quant au principe, c’est le même que pour un formulaire que tu traites sur la même page et pour lequel tu souhaites réafficher les données saisies précédemment quand il y a une erreur : tu regardes s’il y a une valeur, si oui il faut regarder à quelle checkbox elle correspond, et tu l’actives.

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte