#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