【问题标题】:How to pass django context values to the javascript variable?如何将 django 上下文值传递给 javascript 变量?
【发布时间】:2022-01-05 03:40:07
【问题描述】:

我想将{{ 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 脚本也会按照循环重复。

每个nsn的网址都不同。当我点击按钮时,我想发送一个 ajax 请求。

我想执行单个 ajax 函数,只需单击一下即可删除 for 循环。

【问题讨论】:

    标签: javascript python jquery django ajax


    【解决方案1】:

    我认为您可以尝试从 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标签

    【讨论】:

      猜你喜欢
      • 2017-08-17
      • 2020-11-20
      • 2022-12-25
      • 2019-03-01
      • 2012-01-30
      • 2019-03-24
      • 2020-07-11
      相关资源
      最近更新 更多