Perso je serais parti sur PHP. Par exemple :
<?php
// Les réponses sont stockées en session
session_start();
// Chargement des questions dans un tableau (en dur comme dans cet exemple ou depuis une base de données)
$questions = array(
1 => array("Comment avez-vous connu ce site ?", array('Catalogue', 'Internet', 'Newsletter', 'Relations Pro', 'Salons Pro', 'Presse')),
2 => array("Comment qu'ça va bien ?", array('Bof', 'Pas Mal', 'Plutôt bien', 'Impec', 'Super')),
3 => array("Quelle était la couleur du cheval blanc d'Henri IV ?", array('Jaune', 'Vert', 'Blanc', 'Rouge'))
);
// Traitement
$erreur = false;
if($_SERVER['REQUEST_METHOD']=='POST') {
$numero_question = !empty($_POST['numero_question']) ? intval($_POST['numero_question']) : 1;
if(isset($_POST['precedent'])) {
$numero_question--;
unset($_SESSION['reponses'][$numero_question]);
} else {
$rep_question = !empty($_POST['rep_question']) ? $_POST['rep_question'] : '';
if(!empty($rep_question)) {
$_SESSION['reponses'][$numero_question] = $rep_question;
// On incrémente le n° de question
$numero_question++;
} else {
$erreur = 'Sélectionner une réponse';
}
}
} else {
// Premier affichage
$numero_question = 1;
$_SESSION['reponses'] = array();
}
$reponses = !empty($_SESSION['reponses']) ? $_SESSION['reponses'] : array();
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Questionnaire</title>
</head>
<body>
<?php
if($erreur) echo '<p style="color:red">'.$erreur.'</p>';
?>
<?php if(count($reponses) < count($questions)) { ?>
<p><strong>Question <?php echo $numero_question.' : '.$questions[$numero_question][0]; ?></strong></p>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<?php
shuffle($questions[$numero_question][1]);
foreach($questions[$numero_question][1] as $possibilite) {
$value_possibilite = str_replace(" ", "_", $possibilite);
echo '<p><input type="radio" name="rep_question" value="'.$value_possibilite.'" id="'.$value_possibilite.'" /><label for="'.$value_possibilite.'">'.$possibilite."</label></p>\n";
}
?>
<p>
<input type="radio" name="rep_question" value="autre" id="autre" /><label for="autre">Autre</label>
<input type="hidden" name="numero_question" value="<?php echo $numero_question; ?>" />
</p>
<p>
<?php if($numero_question > 1) echo '<input type="submit" name="precedent" value="Précédent" />'; ?>
<input type="submit" value="Suivant" />
</p>
</form>
<?php } else { // Ici on traite les réponses (pour l'exemple un simple affichage
foreach ($_SESSION['reponses'] as $key=>$value) {
echo '<p>Réponse '.$key.' : '.$value."</p>\n";
}
?>
<?php } ?>
</body>
</html>