Jquery плагин DataTable отправка POST AJAX
Вложений: 2
Доброго времени суток.
Использую плагин DataTable для вывода списка студентов. Как видно из первого скрина выводятся данные в модальное окно, на против каждого студента имеется чекбокс, так вот если я выбираю на первой странице 3х студентов за тем перехожу на вторую и выбираю там 3х студентов то при субмите приходят данные с того листа на котором нажал кнопку добавить. А с первого листа ничего не приходит. Как реализовать чтобы можно было отмечать студентов по разным листам и чтобы они добавлялись в POST запрос. Спасибо. |
Накапливать данные о студентах, выбранных на предыдущих страницах в js, а потом отправлять их одним махом на последней
|
Цитата:
|
Цитата:
|
Цитата:
/*** ДОБАВЛЯЕМ СЛУШАТЕЛЯ В ГРУППУ ***/
//Ajax add std grp
$('#formAddStdGrp').submit(function(e){
e.preventDefault();
var form = $('#formAddStdGrp');
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize(),
dataType: "json",
success: function(data){
$('.resp').html('<div class="alert alert-success"><p>'+ data.ok +'</p></div>')
setTimeout(function(){
$(location).href('http://site/?mode=45&idGroup='+data.id);
}, 1500);
}
})
});
|
Цитата:
|
Цитата:
|
Цитата:
Решением является сборка отмеченных чекбоксов на стороне клиента использую JS. Вот что нашел, сейчас буду прикручивать!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Select Multiple Rows With Checkboxes</title>
<link href="css/bootstrap.min.css" rel="stylesheet"/>
<link href="css/dataTables.bootstrap.min.css" rel="stylesheet"/>
<link href="css/dataTables.checkboxes.css" rel="stylesheet"/>
</head>
<body>
<div class="container" style="margin:15px auto">
<form id="myform" method="post">
<p><b>Selected rows data</b></p>
<pre id="view-rows"></pre>
<p><b>Form data as submitted to the server</b></p>
<pre id="view-form"></pre>
<p><button class="btn btn-danger">View Selected</button><br/></p>
<table id="mytable" class="table table-bordered table-striped table-hover">
<thead>
<tr>
<th></th>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Extn.</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</thead>
<tfoot>
<tr>
<th></th>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Extn.</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</tfoot>
</table>
</form>
</div>
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.dataTables.min.js"></script>
<script src="js/dataTables.bootstrap.min.js"></script>
<script src="js/dataTables.checkboxes.min.js"></script>
<script>
$(document).ready(function(){
var mytable = $("#mytable").DataTable({
ajax: 'data.json',
columnDefs: [
{
targets: 0,
checkboxes: {
seletRow: true
}
}
],
select:{
style: 'multi'
},
order: [[1, 'asc']]
})
$("#myform").on('submit', function(e){
var form = this
var rowsel = mytable.column(0).checkboxes.selected();
$.each(rowsel, function(index, rowId){
$(form).append(
$('<input>').attr('type','hidden').attr('name','id[]').val(rowId)
)
})
$("#view-rows").text(rowsel.join(","))
$("#view-form").text($(form).serialize())
$('input[name="id\[\]"]', form).remove()
e.preventDefault()
})
})
</script>
</body>
</html>
|
Тему можно закрыть, проблема решена, кому интересно смотрите тут https://www.youtube.com/watch?v=k3cwPmdrkm4
|
| Часовой пояс GMT +3, время: 07:02. |