Script questionnaire

Fermé
Victor_1298 Messages postés 7 Date d'inscription lundi 12 août 2019 Statut Membre Dernière intervention 2 mai 2020 - Modifié le 2 mai 2020 à 16:41
Victor_1298 Messages postés 7 Date d'inscription lundi 12 août 2019 Statut Membre Dernière intervention 2 mai 2020 - 2 mai 2020 à 20:07
bonjour je voudrais faire un questionnaire où selon la réponse que l'on dit précédemment, cela affiche une question différente. Je cherche des tutoriels / scripts depuis plusieurs jours, j'ai vu que ça se faisait en php ou angular. mais je ne trouve rien pour l'instant, j'ai essayé de faire un script mais il ne marche pas. Quelqu'un peut-il m'aider. Merci d'avance pour vos réponses :)
<script
     src="https://code.jquery.com/jquery-3.5.0.min.js"
     integrity="sha256-xNzN2a4ltkB44Mc/Jz3pT4iU1cmeR0FkXs4pru/JxaQ="
     crossorigin="anonymous"></script>

<?php

$questions = [];
$questions[0] = ['question' => 'Accueil'];
$questions[1] = ['question' => 'Question 1', 'answers' => [2 => 'test 123', 3 => 'test 456']];
$questions[2] = ['question' => 'Question 2', 'answers' => [4 => 'test test', 1 => 'test yellow']];
$questions[3] = ['question' => 'Question 3', 'answers' => [2 => 'test 732', 4 => 'test 600']];
$questions[4] = ['question' => 'Question 3', 'answers' => [1 => 'test 2', 3 => 'test 1']];
if (isset($_GET['ajax']))
{
    echo $questions[$_GET['ajax']]['question'].'<br />';
    echo '<ul>';
    foreach ($questions[$_GET['ajax']]['answers'] as $id_question => $answer)
        echo '<li><input type="radio" name="answer" value="'.$id_question.'">'.$answer.'</li>';
    echo '</ul>';
    die;
}

$_GET['question'] = isset($_GET['question']) ? $_GET['question'] : 1;

echo '<div id="question">';
echo $questions[$_GET['question']]['question'].'<br /><br />';
echo '<ul>';
foreach ($questions[$_GET['question']]['answers'] as $id_question => $answer)
    echo '<li><input type="radio" name="answer" value="'.$id_question.'">'.$answer.'</li>';
echo '</ul>';
echo '</div>';

?>

<script>
$('input[name="answer"]').on('change', function() {
    var id_question = $(this).val();

    $.ajax({
        url: 'index.php',
        data: 'ajax=1&id_question='+id_question,
        success: function(result)
        {
            $("#question").html(result);
        }
    });
});
</script>
A voir également:

3 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
2 mai 2020 à 18:44
Bonjour,

Plusieurs soucis dans ton code....
Déjà
$_GET['question'] = isset($_GET['question']) ? $_GET['question'] : 1;

Non...! tu ne dois pas assigner de valeur à $_GET ... il faut plutôt
$question = isset($_GET['question']) ? $_GET['question'] : 1;



Ensuite, je vois que tu as de l'ajax dans ton code..... mais tu n'as pas mis la fonction "error" dans ton ajax pour gérer les éventuels soucis.
Tu ne nous indiques pas non plus si ta console indique d'éventuelles erreurs... ( il faut, bien entendu activer le debugage xhr )

Je suppose également que c'est ce script Javascript
Mais le script appelé par ton ajax ne devrait pas être le même fichier qui contient ton html. En général, on place le code php dans un fichier à part...

Je t'invite à regarder ces exemples d'ajax
https://codes-sources.commentcamarche.net/source/102253-exemple-ajax-en-jquery



1
kisscool73 Messages postés 79 Date d'inscription mardi 16 janvier 2018 Statut Membre Dernière intervention 20 février 2023
2 mai 2020 à 17:24
Quand tu dis que ça fonctionne pas, détail ton problème pour t'aider.
Une erreur ? ou autre ...
0
Victor_1298 Messages postés 7 Date d'inscription lundi 12 août 2019 Statut Membre Dernière intervention 2 mai 2020 3
2 mai 2020 à 17:39
ça ne fait pas le changement entre les questions :/
0
Victor_1298 Messages postés 7 Date d'inscription lundi 12 août 2019 Statut Membre Dernière intervention 2 mai 2020 3
2 mai 2020 à 20:07
ok, merci beaucoup ! :)
0