Как получить 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')
это просто пример того, как вы можете это сделать.