JeremieMeunier,
il y a 8 ans
Bonsoir,
Comme dit précedemment
<blockquote>Carouge10
Bonsoir,
Si le problème est juste de passer d'une question à une autre, il te suffit de faire un bouton suivant qui pointe vers la prochaine question.
"questions.php?id_quest=2"</blockquote>
Sauf qu'à la place d'un lien tu utilise header('Location:ta_page.php?question_token=2');... Voilà voilà !
gweared,
il y a 8 ans
<?php
if(!isset($next)){
$next = 1;
}
var_dump($next);
// on teste si formulaire de vote a été validé
if (isset($_POST['go']) && $_POST['go']=='Valider') {
if (!isset($_POST['choix']) || !isset($_POST['sondage_en_cours'])) {
$erreur = 'Aucune réponse n\'a été choisie.';
}
// on teste si le visiteur a bien choisi une réponse avant d'avoir clické sur "Vote". On teste aussi si la variable $_POST['sondage_en_cours'] n'est pas vide
if (empty($_POST['choix']) || empty($_POST['sondage_en_cours'])) {
$erreur = 'Au moins un des champs est vide.';
}
else {
// là le visiteur à choisi une réponse
// on se connecte à notre base
$base = mysqli_connect('localhost', 'root', '', 'satisfaction');
// on prépare notre requête : on ajoute un vote pour la réponse choisie par le votant
$sql ='UPDATE sondage_reponses SET nb_reponses = nb_reponses + 1 WHERE id_sondage="'.$_POST['sondage_en_cours'].'" AND id="'.$_POST['choix'].'"';
// on lance la requête
$req = $base->query($sql);
// on ferme la connexion à la base de donnée
mysqli_close ($base);
$next++;
$erreur = 'Merci d\'avoir voté :)';
header('Location:index.php?id='.$next);
}
}
?>
<html>
<!-- Développé par le Crédit Agricole Des Savoie - 2017 -->
<head>
<title>Enquête de satisfaction</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta charset="utf-8">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="Crédit Agricole Des Savoie"/>
<!-- FRAMEWORKS CSS -->
<link href="./fw-mui/css/mui.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<!-- CUSTOM CSS -->
<link rel="stylesheet" href="css/main.css">
</head>
<body>
<!-- BANNIERE -->
<div class="col-sm-6 col-sm-offset-3 header-ban"></div>
<div class="col-sm-6 col-sm-offset-3 mui-panel">
<!-- FORMULAIRE DU SONDAGE -->
<div class="row">
<?php
// on se connecte à la base de données
$base = mysqli_connect('localhost', 'root', '', 'satisfaction');
// on prépare une requête pour sélectionner l'id ainsi que la question.
var_dump($_GET['id']);
$sql = 'SELECT id, question FROM sondage_questions WHERE id="'.$_GET['id'].'" ORDER BY id ';
// on lance la requête
$req = $base->query($sql);
// on récupère le résultat dans un tableau associatif
$data = mysqli_fetch_array ($req);
// On retourne de ligne d'un résultat
$nb_sondage = mysqli_num_rows($req);
if ($nb_sondage == 0) {
echo 'Aucun sondage.';
}else {
// on libère l'espace mémoire alloué à cette requête
mysqli_free_result ($req);
?>
<div class="type-question">
<p class="question">
<?php
// on affiche la question
// stripslashes — Supprime les antislashs d'une chaîne
// htmlentities — Convertit tous les caractères éligibles en entités HTML
// trim suprime les espaces en début et fin de chaine
echo stripslashes(htmlentities(trim($data['question']))),'<br />';
?>
</p>
</div>
<?php
// on prepare l'affichage de notre formulaire permettant de voter
echo '<form action = "index.php" method = "post">';
// on prépare une requête permettant de sélectionner les réponses possibles se rapportant à ce même sondage
$sql = 'SELECT id, reponse FROM sondage_reponses WHERE id_sondage="'.$data['id'].'"';
// on lance la requête
$req = $base->query($sql);
?>
<br/>
<?php
// on prépare notre boucle pour afficher les différents choix possibles de réponses
while ($donnees = mysqli_fetch_array($req)) {
// on affiche des boutons radio pour les différents choix de réponses possibles
echo '<center><input type="radio" name="choix" value="' , $donnees['id'] , '"> ' , stripslashes(htmlentities(trim($donnees['reponse']))) , '<br /></center>';
}
?>
<br/><input type = "hidden" name = "sondage_en_cours" value = "<?php echo $data['id']; ?>">
<center><input type = "submit" name="go" value = "Valider"></center>
</form>
<?php
}
// on libère l'espace mémoire alloué à cette requête
mysqli_free_result ($req);
// on ferme la connection à notre base de données
mysqli_close ($base);
?>
<br /><br />
<center><a href="sondage_resultats.php">Voir les résultats</a></center>
<?php
// on affiche les erreurs éventuelles
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
<div class="col-sm-12 mui-textfield mui-textfield--float-label">
</div>
</div>
</div>
<div class="col-sm-6 col-sm-offset-3 ft-copy">
<p>© Crédit Agricole des Savoie - 2017</p>
</div>
</body>
<script type="text/javascript" src="js/jquery.min.js"></script>
<!--<script src="./js/main.js"></script>-->
<!-- FRAMEWORKS JS -->
<script src="./fw-mui/js/mui.min.js"></script>
<script src="./fw-mui/webcomponents/mui-webcomponents.min.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
</html><br><br>
JeremieMeunier,
il y a 8 ans
Oui c'est tout le principe !
Et donc si tu es à la question 1 la redirection ira à la question 2.
Si tu es à la question 2564 la redirection sera pour 2565.
<?php
$sql = $db->prepare('SELECT * FROM question WHERE id = :id');
$sql->execute(array('id' => $_GET['question_token']));
?>