Возврат var из JavaScript в Python - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть такой HTML-контейнер:

<div class="col-6">
  <div class="card ">
    <div class="card-header py-2">Container Left</div>
    <div id="leftContainer" class="list-group" style="height:225px; overflow-y: scroll">
        {% for item in item_history %}
           <a href="#" data-set="5000" id = "{{forloop.counter}}" class="list-group-item py-0 list-group-item-action">{{ item }}</a>
        {% endfor %}                      
    </div>
  </div>
</div>

<p id = "output"></p>    <!-- For DEBUG output -->

И у меня есть такой JS, половина которого принадлежит мне.Я могу напечатать значение в переменной item_selected обратно на страницу HTML, где <p id="output>" находится по адресу.

<script>
    $("#leftContainer > a").click(function(event){
        event.preventDefault();
        $("#leftContainer > a").removeClass("active");
        $(this).addClass("active");

        var leftDataSet = parseInt($(this).attr("data-set"));        
        var item_selected = $(this).text();
        document.getElementById("output").innerHTML = item_selected

        // Found this while googling, supposed to send data back to Python.
        var xmlhttp;
        if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }
        // xmlhttp.onreadystatechange=function(){ // really not sure what this block does?!
        //     if (xmlhttp.readyState==4 && xmlhttp.status==200){
        //         document.getElementById("output").innerHTML=xmlhttp.responseText;
        //     }
        // }
        xmlhttp.open("GET",item_selected,true);  // just send item_selected
        xmlhttp.send();
    });
</script>

Я хочу отправить выборку из списка / контейнера после выбора,который в настоящее время хранится в JavaScript в переменной item_selected.Я хочу отправить эту информацию обратно в Python, который отображает эту страницу / шаблон.

Можете ли вы помочь;Я знаю Python 3, сосать в JS / JQuery.Моя платформа используется Django.Я рендерил эту страницу из бэкэнда, используя render метод, подобный следующему:

# myapp/views.py
def render_view_results(self, request, projectid):
    return render(request, 'myapp/index.html',{'item_history':items})

Кроме того, я не хочу отправлять информацию обратно из HTML / JS в Python, используя метод GET, предложенный здесь

...