Node / Express Викторина приложение ПРОБЛЕМА ПРИ ПЕРЕЗАГРУЗКЕ СТРАНИЦЫ - PullRequest
0 голосов
/ 30 апреля 2020

Я создаю тест, отображающий один вопрос за раз, но когда я перезагружаю страницу, появляется сообщение от повторной отправки, и оно переходит к следующему вопросу, даже если на предыдущий вопрос не было ответа. Я бы хотел, чтобы он оставался в том же вопросе. или сбросьте тест. Любая помощь действительно ценится HTML КОД

<form action="/readingTest" onsubmit="return validateForm()" method="POST">
            <input type="radio" id="OP1" name="options" value="<%= word.OP1 %>"><label for="OP1"> <%= word.OP1 %> </label><br>
            <input type="radio" id="OP2" name="options" value="<%= word.OP2 %>"><label for="OP2"> <%= word.OP2 %> </label><br>
            <input type="radio" id="OP3" name="options" value="<%= word.OP3 %>"><label for="OP3"> <%= word.OP3 %> </label><br>
            <input type="radio" id="OP4" name="options" value="<%= word.OP4 %>" ><label for="OP4"> <%=word.OP4 %> </label><br><br>
            <input type="submit" id="submit" value="submit"/>
    </form>

Node js код:

 var questions = [];
    //var currentQuestions = [];
    var qNum = -1;  //current question number
    var limit = 7;  //total number of questions tested
    var count = -1; //index to insert answer.
    var allowprev = false;
    app.get('/tests',function(req,res){
            res.render('tests.html');
    });
    app.post('/readingTest', function(req,res) {
            db.connect(function (err){
            db.query("SELECT * FROM Questions", function(err, result, fields){
                    if(err) throw err;
                    questions = result;
                    if(qNum==-1){
                            qNum++;
                            count++;
                            console.log(allowprev);
                            console.log('c:'+count+' q:'+qNum);
                            res.render('readingTest.ejs',{word:questions[randOrder[qNum]], number:qNum+1, check:allowprev });
                    }
                    else{
                            if(req.body.before=='before'){
                                    qNum--;
                                    count--;
                                    if(qNum==0){allowprev=false};
                                    console.log(allowprev);
                                    console.log('c:'+count+' q:'+qNum);
                                    res.render('readingTest.ejs',{word:questions[randOrder[qNum]], number:qNum+1, check:allowprev});}
                            else{
                                    if(qNum==limit-1){
                                            testResult[count]=req.body.options;
                                            res.render('results.ejs',{tResults:testResult});
                                            testResult=new Array(7);
                                            qNum=-1;count=-1;
                                            randOrder = randOrder.slice(0,7);
                                    }
                                    else{
                                            testResult[count]=req.body.options;
                                            allowprev=true;
                                            qNum++;
                                            count++;
                                            console.log(allowprev);
                                            console.log('c:'+count+' q:'+qNum);
                                            res.render('readingTest.ejs',{word:questions[randOrder[qNum]], number:qNum+1, check:allowprev});
                                    }
                            }
                    }
                    console.log('h:'+testResult);

            });
    });
    });
    app.get('/results', function(req,res){
            res.render('results.ejs');});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...