Script questionnaire

Victor_1298 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
Victor_1298 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   3
 
ça ne fait pas le changement entre les questions :/
0
Victor_1298 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   3
 
ok, merci beaucoup ! :)
0