Script questionnaire

Victor_1298 Messages postés 7 Statut Membre -  
Victor_1298 Messages postés 7 Statut Membre -
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 40050 Statut Modérateur 4 758
 
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 93 Statut Membre
 
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 Statut Membre 3
 
ça ne fait pas le changement entre les questions :/
0
Victor_1298 Messages postés 7 Statut Membre 3
 
ok, merci beaucoup ! :)
0