Как я могу увеличить переменную в ejs.file

#javascript #variables #ejs #increment

#javascript #переменные #ejs #увеличить

Вопрос:

Я создаю тест, в котором пользователь будет получать доступ к одному вопросу за раз. После нажатия кнопки Отправки он добавляет 1 к счетчику и переходит к следующему вопросу в массиве. Все мои вопросы хранятся в моей базе данных в MongoDB.

Что я пробовал:

 <% var pos = 0 %>

  <section class="nivelamento" id="nivelamento">
      <div class="container">

          <h2 id='teste_status' class="nivelamento-titulo">Math Questions!</h2>
          <h6>Question <%= (pos   1) %> of <%= quizzes.length %> </h6>
          <div id="teste">

              <form action="/nivelamento" method="POST">
                  <h2><%= quizzes[pos].question %></h2>
                  <input type="radio" name='options' value="A"><%= quizzes[pos].firstOption %><br>
                  <input type="radio" name='options' value="B"><%= quizzes[pos].secondOption %><br>
                  <input type="radio" name='options' value="C"><%= quizzes[pos].thirdOption %><br><br>
                  <button type="submit" class="btn btn-danger btn-sm">Submit Answer</button>
              </form>

                  <% if(opcaoEscolhida === quizzes[pos].rightAnswer){ %>
                      <% correct   %>                
                  <% }  %>

                  <% pos   %>

          </div>    
      </div>
  </section>
  

После того, как я нажимаю отправить, все остается прежним, номер позиции моего массива не меняется.

В остальном, пока все работает нормально, потому что, меняя счетчик вручную, я получаю желаемый результат.

Ответ №1:

Вы не можете этого сделать. после загрузки страницы ejs преобразуется в обычный html. для таких вещей вам нужно использовать javascript. это похоже на echo в php, вы можете прочитать об этой идее. вам нужно будет создать переменную в java script и поместить ее в divs и заголовки в html