Как получить id выбранной строки в таблице с помощью javascript

Печатается список текущей информации об ученике. Затем, при выборе флажка и нажатии кнопки "Добавить учителя", была добавлена функция, чтобы имя текущего зарегистрированного пользователя добавлялось в колонку учителя. Здесь я хочу применить событие ко всем выбранным строкам, передавая несколько значений параметру, когда выбрано несколько флажков. Я искал это, но не могу найти решение, поэтому прошу помочь.

urls.py

path('student/add_teacher/<int:id>/', views.add_teacher)

views.py

def add_teacher(request, id):
    student = Student.objects.get(pk=id)
    student.teacher = request.user.name
    student.save()
    return HttpResponseRedirect(f'/student/')

student_list.html

<table id="student-list" class="maintable">
        <thead>
           <tr>
              <th>Name</th>
              <th>Age</th>
              <th>Register date</th>
              <th>Select</th>
          </tr>
        </thead>

        <tbody>
          {% for student in student %}
          <tr class="text-black tr-hover table-link text-center student" student-id="{{ student.id }}">
             <td>{{ student.name }}</td>
             <td>{{ student.age }}</td>
             <td>{{ student.register_date }}</td>
             <td><input type="checkbox"></td>
          </tr>
          {% endfor %}
        </tbody>
      </table>

      <button type="button" class="btn btn-secondary addteacher">Update Teacher</button>

student_function.js

$(function () {
        $('button.addteacher').click(function (e) {
        var elem = $(".maintable input:checked").parents("tr");
        var studentID = elem.attr('student-id');
        var updateTeacher = confirm("업데이트하시겠습니까?");
        if (updateTeacher) {
            window.location.href = 'student/add_teacher/' + studentID + '/';
        }
    });
});

templates:

<table id="student-list" class="maintable">
        <thead>
           <tr>
              <th>Name</th>
              <th>Age</th>
              <th>Register date</th>
              <th>Select</th>
          </tr>
        </thead>
        {% for student in student %}
        <tbody>
    
      <tr class="text-black tr-hover table-link text-center student" id="{{ student.pk }}">
         <td>{{ student.name }}</td>
         <td>{{ student.age }}</td>
         <td>{{ student.register_date }}</td>
      <td>
 <button type="button" class="btn btn-secondary addteacher" student-id="{{ student.pk }}">Update Teacher</button>
    </td>
<tr>
              
            </tbody>

    {% endfor %}
          </table>

js

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$('.addteacher').click(function (e) {
  
        var studentID = $(this).attr('student-id');
      $.post("{% url 'add_teacher' %}",
           { 
         id:studentID 
          },
function(data, status){
  // you can do what ever you want here after success 
  $('#'+studentID).hide();
  });
         
})
</script>

views.py

def add_teacher(request):
    student_id = request.POST.get('id')
    // you can add some extra logic here
    student = Student.objects.get(pk=int(student_id))
    student.teacher = request.user.name
    student.save()
    return HttpResponseRedirect(f'/student/')

urls.py:

path('student/add_teacher/', views.add_teacher,name='add_teacher')

это просто пример того, как вы можете это сделать.

Вернуться на верх