Как обновить глобальную переменную в шаблоне jinja?

Я динамически заменяю содержимое своего div новым содержимым. Мой новый контент - это запись, полученная из базы данных, которая хранится в виде списка в переменных данных. Каждый раз, когда нажимается кнопка отправки, содержимое должно заменяться следующим элементом из списка. Я объявил глобальную переменную I для извлечения соответствующего элемента из data [], и я пытаюсь увеличить свой i. Но каждый раз i инициализируется исходным значением. Пожалуйста помоги. Я прикрепил сюда свой код.

<html>  
<head>
  {% set i=0%}
  <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script type = "text/javascript">
    function ReplaceContentInContainer(id, content) {
      var container = document.getElementById(id);
      container.innerHTML = "";
      container.innerHTML = document.getElementById('blockOfStuff').innerHTML;
    }
  </script>
  <script id = "blockOfStuff" type = "text/html">
    <div id = "d1">
      {% set i=i+1%} {% for item in data[i]%}
      <tr>
        {{item}}
      </tr>
      <br> {% endfor %}
      <input type = "submit" onclick = "javascript:ReplaceContentInContainer('d1','')">
    </div>
  </script>
</head>

<body>
  <div id = "d1">
    {% for item in data %}
    <tr>
      {% for val in item %}
      <td>{{val}}</td>
      <br> {% endfor %}
    </tr>
    <br>
    <input type = "submit" onclick = "javascript:ReplaceContentInContainer('d1','')"> {% break %} {% endfor %}
  </div>
</body>
</html>

Где код для отправки blockOfStuff на сервер для его рендеринга?

Pal Singh 27.10.2018 09:04

Мой blockofStuff - это просто html для добавления нового элемента из моих данных []. Так что в основном, когда мой i равен 1, моим элементом будет data [1], и он заменит данные [0]. Затем в следующий раз, когда будет нажата кнопка отправки, данные [1] исчезнет (когда управление перейдет к функции ReplaceContentInContainer (id, content)) и будет заменено данными [2], и этот процесс будет продолжаться до i == len (data).

AAD 27.10.2018 10:26

рендеринг вашего шаблона с помощью jinja2 происходит на стороне клиента?

Pal Singh 27.10.2018 19:25

Да, это происходит на стороне клиента. Я возвращаю приведенный выше код (survey.html) из моего файла app.py. Кажется, что область действия переменной заканчивается после завершения цикла в jinja, потому что мое 'i' увеличивается, когда он входит в цикл for впервые. После этого, когда цикл завершается, i снова инициализируется исходным значением, даже если оно объявлено глобально.

AAD 28.10.2018 08:07

Можно ли создать из него скрипку?

Pal Singh 28.10.2018 08:18
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
442
0

Другие вопросы по теме