Показать сообщение отдельно
  #8 (permalink)  
Старый 22.01.2017, 12:36
Интересующийся
Отправить личное сообщение для kuliev Посмотреть профиль Найти все сообщения от kuliev
 
Регистрация: 14.10.2016
Сообщений: 10

Сообщение от рони Посмотреть сообщение
строка 9
Что строка 9? На ней сереализуются данные для отправки полученые с формы. При пагинации таблицы данные DOM "теряются" и форма видит только те поля которые отображены в данный момент и при сабмите отправляет все с того листа где нахожусь.

Решением является сборка отмеченных чекбоксов на стороне клиента использую 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>
Ответить с цитированием