Bonjour,

Je développe actuellement une application à l'aide de php dans laquelle j'utilise un formulaire.
Il s'agit en fait d'un questionnaire auquel doit répondre un utilisateur.
Je tiens à préciser que je débute en php, je n'ai pas encore eu le temps de faire la totalité
des tutoriels présent sur Grafikart (la prochaine fois je commencerai par ceux là..!) mais j'ai pu
en faire d'autres avant d'attérir ici. Idem en ce qui concerne le javascript (je risque d'en avoir
besoin pour résoudre mon problème, vous pourrez peut être me le confirmer).

J'ai besoin pour mon application de savoir combien de temps passe un utilisateur sur une page
avant qu'il ne soumette un formulaire. Et je demande aussi à l'utilisateur de confirmer son envoi.
S'il confirme, j'enregistre alors la réponse et le temps mis par l'utilisateur dans ma base de données
puis j'actualise la page avec une nouvelle question et ce jusqu'à la fin du questionnaire.
Sinon, la page ne change pas jusqu'à une nouvelle soumission de la part de l'utilisateur.

Mon problème est au niveau du submit de mon formulaire. Je n'arrive pas à concilier la confirmation
et les actions qui vont suivre. Je ne trouve pas comment faire en sorte que s'il y a confirmation,
je calcule le temps mis par l'utilisateur puis je l'enregistre avec la réponse avant de recharger la page.

Voici un peu de code simplifié pour aider à comprendre l'architecture de ma page :

<html>
    <head>
    </head>
    <body>
        <form>
            <textarea type="text" readonly="readonly" name="question" id="question">
                <?php echo $question'source']; ?>
            </textarea>
            <textarea type="text" name="answer" id="answer" required="required">
            </textarea>
            <input type="submit" value="Next" name="next" onclick=" ??? "/> // Est-ce que je dois passer par 'onclick' ?
        </form>
    </body>
</html>

Et la fonction que je souhaite utiliser pour calculer le temps passé sur la page :

<?php
    // Placé en début de page
    $time_start = microtime(true);
?>
<?php
    function TimeSubmit(time_start)
    {
        if(" confirmé ")
        {
            $time_end = microtime(true);
            $time = $time_end - $time_start;
        } else {
        }
        return $time;
    }
?>

J'espère que mes explications sont compréhensibles, je suis à l'écoute de toutes vos propositions
sur une façon de résoudre mon problème. Je ne vous demande évidemment pas de coder à ma place mais de me
proposer une méthode (ou plusieurs!) pour y parvenir...

Merci.

1 réponse


pook
Auteur
Réponse acceptée

J'ai finalement trouvé une solution, c'était vraiment bidon...
J'aurais du faire une pause plus tôt pour reprendre mon problème à tête reposée !
Merci à ceux qui on pris le temps de lire ;-)