【问题标题】:How to POST variables js to Django如何将变量 js 发布到 Django
【发布时间】:2019-07-16 01:27:18
【问题描述】:

我在 js 中有 3 个变量。我需要发布到views.py

我使用 Python 2.7 和 django 1.11 我尝试使用 ajax 但我不明白。


<head>
    <meta charset="UTF-8">
    <title>Prueba de actualización de forma</title>
    <script type="text/javascript">
        function addEvidence(form) {
            idAlumno = document.getElementById('idAlumno').value;
            competencia = document.getElementById('Competencia').value;
            var radios = document.getElementsByName('Calificacion');

            for (var i = 0, length = radios.length; i < length; i++) {
                if (radios[i].checked) {
                    calificacion = radios[i].value
                    break;
                }
            }
            alert(idAlumno + " " + competencia + " " + calificacion);

        }
    </script>
</head>

views.py


def Evidences(request, idAlumno,competencia,calificacion):


    return render(request, 'resultados_app/resultados.html')

我需要发布 idAlumno、competentcia 和 calificacion 但我不知道

【问题讨论】:

    标签: javascript python django


    【解决方案1】:

    包括 jquery,这将工作

    $(document).on('submit', 'form', function(e) {
        $.ajax({
            type: 'POST',
            url: '/YOUR_URL/',
            data: {
                idAlumno: idAlumno,
                competencia: competencia,
                calificacion: calificacion,
                csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val()
            },
            success:function() {
                console.log("success");
            },
            error: function(data) {
                console.log("error");
            }
        });
    });
    

    views.py

    
    def Evidences(request):
        idAlumno = request.POST["idAlumno"]
        competencia = request.POST["competencia"]
        calificacion = request.POST["calificacion"]
    

    【讨论】:

    • 如果我在同一个 html 中有 2 个表单?我还有一个问题,在 url 中的 $ ajax 中,我应该放什么 url
    • 您可以输入 www.example.com/evidences 或 /evidences 例如,两者都可以。为表单提供不同的 id 并这样做$(document).on('submit', '#id', function(){....}
    【解决方案2】:

    我用

    <script>
            $(document).ready(function () {
                $("#evidences").submit(function (event) {
                    idAlumno = document.getElementById('idAlumno').value;
                    competencia = document.getElementById('Competencia').value;
                    var radios = document.getElementsByName('Calificacion');
                    noSemana = document.getElementById('opciones').value;
                    for (var i = 0, length = radios.length; i < length; i++) {
                        if (radios[i].checked) {
                            calificacion = radios[i].value
                            break;
                        }
                    }
                    $.ajax({
                        type: "POST",
                        url: 'evidences',
                        data: {
                            csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(),
                            'idAlumno': idAlumno, // from form
                            'competencia': competencia,
                            'calificacion': calificacion,
                            'noSemana': noSemana                        
                        },
                        success: function () {
                            window.location='/'
                        }
                    });
                    return false; //<---- move it here
                });
    
            });
        </script>
    

    【讨论】:

      猜你喜欢
      • 2012-12-03
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多