【问题标题】:Django without Page Refresh using AJAX没有使用 AJAX 刷新页面的 Django
【发布时间】:2020-03-17 02:45:14
【问题描述】:

当老师更新学生行为时,弹出消息“更新成功”,

在我的情况下,当老师更新学生行为时,页面显示为空白

我错过了什么吗?请检查我的 return HttpResponse('') 是否正确以及我的脚本。

这是来源https://www.youtube.com/watch?v=KgnPSmrQrXI

<form method="POST" id="DogForm" action="/Updatestudentbehavior/"  class="myform" style="width: 100%" enctype="multipart/form-data">{% csrf_token %}
    <table class="tblcore">
    <input type="text" value="{{teacher}}" name="teacher" id="teacher">
        {% for students in student %}
        <tr>
            <td colspan="2"><input type="hidden" value="{{students.id}}" >{{students.Students_Enrollment_Records__Students_Enrollment_Records__Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Lastname}} {{students.Students_Enrollment_Records__Students_Enrollment_Records__Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Firstname}}</td>
            {% for corevalues in studentsbehaviorgrade %}
            <td colspan="4">
                <input type="hidden" value="{{corevalues.id}}" name="id" id="student">
                 <select name="Marking" id="marking">
                     <option value="{{corevalues.Marking.id}}" >{{corevalues.Marking.id}}-{{corevalues.Marking.Marking}}</option>
                     {% for behaviors in behavior %}
                        <option value="{{behaviors.id}}">{{behaviors.id}}-{{behaviors.Marking}}</option>
                     {% endfor %}
                 </select>
             </td>
            {% endfor %}
        </tr>
        {% endfor %}
    </table>
    <input type="submit" value="Update">
</form>

这是我的脚本

<script type="text/javascript">
   $(document).on('submit', '#DogForm', function(e) {
      e.preventDefault();
        $.ajax({
            type:'POST',
            url:'/Updatestudentbehavior/'
            data:{
                teacher:$('#teacher').val(),
                student:$('#student').val(),
                marking:$('#marking').val(),
                csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val()
            },
            success:function(){
                alert('Update Success');
            }
        });
   });
</script>

我的意见.py

def Updatestudentbehavior(request):
    .....
    return HttpResponse('')

urls.py

path('Updatestudentbehavior/', Homepage.views.Updatestudentbehavior, name='Updatestudentbehavior'),

更新 当我尝试这个时

def Updatestudentbehavior(request):
    .....
    return HttpResponse('Success')

我收到了这个

它没有调用我在 html 中创建的 ajax 我尝试尝试 console.log

<script>
$(document).on('submit', '.myform', function(e) {
      e.preventDefault();
      console.log(this);
..
</script>

这是结果

【问题讨论】:

  • 为什么我得到了反对票而不解释原因?
  • 错字:“成功”->“成功”
  • 是的,我现在修复了错字,但它没有用
  • 我的意思是同样的结果
  • 您可以在浏览器开发工具的网络选项卡中查看返回的内容。控制台有一个例外,你能分享一下吗?

标签: python django ajax


【解决方案1】:

您的事件处理程序是一个空函数,因为您有语法错误。更改以下行:

$(document).on('submit', '#DogForm', function(e)){
...
}

$(document).on('submit', '#DogForm', function(e) {
...
})

【讨论】:

  • 我现在改变它,但我得到相同的结果:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-24
  • 2014-05-19
  • 1970-01-01
  • 2021-04-04
  • 2018-06-14
相关资源
最近更新 更多