Develop a registration page for student enrollment without page refresh using AJAX

Develop a registration page for student enrollment without page refresh using AJAX

Answer:-

views.py:-

from django.http import HttpResponse
from django.shortcuts import render
from ap3.models import Course, Student

def regaj(request):
    if request.method == "POST":
        sid = request.POST.get("sname")
        cid = request.POST.get("cname")
        student = Student.objects.get(id=sid)
        course = Course.objects.get(id=cid)
        res = student.enrolment.filter(id=cid)
        if res:
            return HttpResponse("<h1>Student already enrolled</h1>")
        student.enrolment.add(course)
        return HttpResponse("<h1>Student enrolled successfully</h1>")
    else:
        students = Student.objects.all()
        courses = Course.objects.all()
        return render(request, "regaj.html", {"students": students, "courses": courses})

templates/regaj.html:-

{% load static %}
<html>
<body>
<form method="post" action="">
{% csrf_token %}
Student Name
<select name="sname" id="sname">
{% for student in students %}
<option value="{{ student.id }}">{{ student.student_name }}</option>
{% endfor %}
</select><br>
Course Name
<select name="cname" id="cname">
{% for course in courses %}
<option value="{{ course.id }}">{{ course.course_name }}</option>
{% endfor %}
</select><br>
<span id="ans"></span>
<input type="button" value="Enroll" id="ebtn">
</form>
<script src="{% static 'jquery.min.js' %}"></script>
<script>
$(document).ready(function(){
    $("#ebtn").click(function(){
        var sname = $("#sname").val();
        var cname = $("#cname").val();
        $.ajax({
            type: "POST",
            url: "/regaj/",
            data: { sname: sname, cname: cname, csrfmiddlewaretoken: '{{ csrf_token }}' },
            success: function(response){
                $("#ans").html(response);
            }
        });
    });
});
</script>
</body>
</html>

urls.py:-

from django.contrib import admin
from django.urls import path
from ap3.views import expr, cbox, regaj, course_search_ajax

admin.site.site_header = "My Site Header"
admin.site.site_title = "My Site Title"
admin.site.index_title = "My Site Index"

urlpatterns = [
    path('secretadmin/', admin.site.urls),
    path('expr/', expr),
    path('cbox/', cbox),
    path('regaj/', regaj),
]

Leave a Reply

Your email address will not be published. Required fields are marked *