Как передать значения контекста django в переменную javascript?

Я хочу передать все значения {{ i.nsn }} по очереди в ajax скрипт.

{% for i in dibbs %}

<p>{{ i.nsn }}</p>

{% endfor %}

Если я попробую ajax скрипт способом

{% for i in dibbs %}
  <script>
      var nsn = {{ i.nsn }}
      console.log("Hello")
         $('.togglebtn').on("click",function(){
         console.log("Hello")
         $.ajax({
            type: 'GET',
            url: "http://localhost:8000/toggle/"+nsn,
            contentType: 'application/json',
            success: function (data) {
                  appendData(data);
                   function appendData(data) {
            var mainContainer = document.getElementById("switch_{{forloop.counter}}");
            for (var i = 0; i < data.length; i++) {
                var div = document.createElement("div");
                div.innerHTML = '<tr>' + data[i].line_items + ' ' + data[i].nomenclature+'</tr>' ;
                mainContainer.appendChild(div);
            }
        }
            }
  });
  });




      </script>

{% endfor %}

Сценарий ajax также повторяется в соответствии с циклом.

Мой url для каждого nsn разный. Я хочу отправлять один ajax запрос при нажатии на кнопку.

Я хочу выполнить одну функцию ajax для одного клика, удалив цикл for.

Думаю, вы можете попробовать получить значение из тега p и передать его в ajax

{% for i in dibbs %}
  <p>{{ i.nsn }}</p>


  <script>
    var nsn = ctrl.getElementsByTagName('p')[0].innerHTML;
      console.log("Hello")
         $('.togglebtn').on("click",function(){
         console.log("Hello")
         $.ajax({
            type: 'GET',
            url: "http://localhost:8000/toggle/"+nsn,
            contentType: 'application/json',
            success: function (data) {
                  appendData(data);
                   function appendData(data) {
            var mainContainer = document.getElementById("switch_{{forloop.counter}}");
            for (var i = 0; i < data.length; i++) {
                var div = document.createElement("div");
                div.innerHTML = '<tr>' + data[i].line_items + ' ' + data[i].nomenclature+'</tr>' ;
                mainContainer.appendChild(div);
            }
        }
            }
  });
  });




      </script>

{% endfor %}

Вы также можете скрыть тег p, если не хотите его отображать

Вернуться на верх