Problème d'incrémentation

Par gweared, il y a 8 ans


Bonjour,
J'ai un problème assez étrange.

Techniquement mon programme est changé affiché des questions en fonction d'un id et on passe à la question suivante quand on clique sur l'un des choix.

Là où c'est étrange c'est que tout fonctionne sauf au niveau de l'url.

A la première question on a un id à 0 et quand on clique sur la question suivante on a la bonne question mais dans l'url l'id est toujours à 0. C'est seulement si on répond de nouveau à la question que l'id incrémente correctement.

Ce que je fais

<div class="type-question"> <p class="question"> <?php //echo $_SESSION['questions']; if (!empty($_GET['id'])) { displayQuestions($_GET['id']); } else { displayQuestions(); } /* if (intval($_GET['indexQuestion'])< sizeof($_SESSION["question"])-1) { $_SESSION["question"][intval($_GET['indexQuestion'])+1]; }*/ ?> </p> </div> if (!empty($_POST['choix'])) { $_GET['id']++; //quelque soit le choix, l'appel est toujours le même addReponse($_SESSION['id_utilisateur'],$_POST['sondage_en_cours'], $_POST['question'],$_POST['choix']); echo $_GET['id']; header('Location :index.php?id='.$_GET['id']); } else { header('Location :index.php?id=0'); } function displayAddReponses($idQuestion = 0) { $query = 'SELECT * FROM sondage_questions WHERE id = (SELECT min(id) FROM sondage_questions WHERE id > :id )'; $resultat = db()->prepare($query); $resultat->bindValue(':id',$idQuestion,PDO::PARAM_INT); $data = $resultat->execute(); $nb_sondage = $resultat->rowCount(); if (!$resultat->execute()) { echo '<br>ERREUR select ID ('.$idQuestion.') => v&eacute;rifier la DB'; } else { if (!$nb_sondage == 0) { $donnees = $resultat->fetch(); echo "<form method='post' class='bandeau' action = 'index.php?id=".$_GET['id']."'>"; echo "<input type='hidden' name = 'sondage_en_cours' value = '".$donnees['id']."'/>"; echo "<input type='hidden' name = 'question' value = '".$donnees['question']."'/>"; echo "<input type = 'submit' name='choix' value = 'bon' class='bon'/>"; echo "<input type = 'submit' name='choix' value = 'moyen' class='moyen'/>"; echo "<input type = 'submit' name='choix' value = 'mauvais' class='mauvais'/>"; echo "</form>"; }

Cela pourrait venir d'ou?

7 réponses

Jinou, il y a 8 ans

T'as pas du JS ou de l'ajax qui traine ?

gweared, il y a 8 ans

non du tout pourquoi?

Jinou, il y a 8 ans

ca aurait pu expliqué que l'url change pas, mais le contenu oui ^^
Déjà j'ai du mal à pigé comme tu fais pour sélectionner la question qui à l'ID 0. Etant donné que l'on comme toujours à l'ID 1.
C'est ptete par là qu'il faut creuser

gweared, il y a 8 ans

Alors j'ai retirer l'espace entre le location et le : et apriori sa à l'air de fonctionner.

header('Location : index.php?id=1'); header('Location: index.php?id=1');

Sinon une autre petite question, si je veux retirer la question a l'id 2.
Tu aurais une idée ?
C'est a dire qu'on afficherais la question 1 puis 3 puis 4 ?

Jinou, il y a 8 ans

Ca dépend de la raison, mais une simple condition du genre : Si l'id == 2 => id++

Pour le header il est vrai qu'il a tendence à être un peu strict pour pas grand chose. ( pour ca que je l'utilise plus :D )

gweared, il y a 8 ans

Par contre par rapport à la redirection si je fais

~satisfaction/index.php?id=1 tout fonctionne correctement
Cependant si je met ~satisfaction/ on va avoir deux fois la question 1.

Jinou, il y a 8 ans

ne le met pas alors. ^^