Преобразование ответа сервера в формат Json и загрузка его в таблицы данных jquery - PullRequest
0 голосов
/ 10 октября 2019

Я хочу перезагрузить Jquery DataTable после удаления выбранных строк в таблице.

1-Когда я нажимаю кнопку удаления, он сохраняет значения всех выбранных данных в переменной (var = checkbox),

затем я передаю эти данные в другой php-файл с именем delete.php (delete.php выполняет sql-операцию и удаляет выбранные данные из базы данных "). После успешного завершения операции я хочу перезагрузить таблицы данных с новыми данными, чтобы перезапуститьdatatable Я использую table.ajax.reload (), но выдает ошибку («Предупреждение DataTables: таблица id = testtable - Неверный ответ JSON.»)

таблица перезагружается правильно, когда я вручную обновляю ее из браузера

Я перепробовал множество решений, указанных в stackoverflow, но у меня ничего не работает, как.

1-table.ajax.reload (), он выдает ошибку недопустимого ответа json.

2-я также проверяю ответ сервера в ("firefox-> web developer-> networt-> XHR"), и он дает правильный ответ.

Edit-мой сервер дает ответ в виде test / html.

как я могу получить новые данные из ответа сервера, который используется для перезагрузки таблиц данных

<script>  
  
   
    
    
    //Delete conformation message
    /***************************/
    

    
    //SelectAll checkBox
    /****************************/
    $(document).ready(function(){ 
        
        var table= $('#testtable').DataTable({
            autoWidth: true,
            "processing": true,
            "serverSide": false,
            "deferRender": true,

            order: [[ 1, "asc" ]]
        });
    $('#checkall').click(function(){
         var checked = this.checked;

        table.column(0).nodes().to$().each(function(index) {

      if (checked) {

            $(this).find('.delete_checkbox').prop('checked', 'checked');

          } 
          else {
                   
                   
              $(this).find('.delete_checkbox').removeProp('checked');

              }

         });

       table.draw();
    });
    /********************************/
        
    
    //Select indivisual checkBox
    /*******************************/
    $('.delete_checkbox').click(function(){
         

        if($(this).is(':checked'))

        {   
            
            $(this).closest('tr').addClass('removeRow');
        }
        else
        {
            $(this).closest('tr').removeClass('removeRow');
        }
    });
    /*******************************/
    


    //Deletion of Data
       /***********************************/
        $('#delete_all').click(function(){   
        
             
        var checkbox = table.$('input').serializeArray();
        console.log(typeof(checkbox));
        
        
        

        
        
        if(checkbox.length > 0)
        {  
            var result=confirm("Are you sure");
            if(result==true)
            {
                
            var result = checkbox.map(a => a.value);

           // var result=JSON.stringify(checkbox.map(a => a.value));
            console.log(result);
                
            $.ajax({
            	contentType: "application/json; charset=utf-8",
                url:"delete.php",
                method:"POST",
                data:{checkbox_id:result},

                success:function(data)
                {
                       table.ajax.reload();
                      //console.log("data");
                }
            });
            }
            else {
                return false;
            }

            
        }
        
        else
        {
            alert("Select atleast one records");
        }
    });
      /******************************************/
 
    
    




    

});

  
</script>
<html>  
    <head>  
        <title>Delete Multiple Records using PHP Ajax with Animated Effect</title>
 <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
 <script src="https://cdn.datatables.net/1.10.4/js/jquery.dataTables.min.js"></script>
 <link rel="stylesheet" href="https://cdn.datatables.net/1.10.4/css/jquery.dataTables.min.css">

    

        
    </head>  
    <body >  
        <div class="container">  
            <br />
   <div class="table-responsive">  
    <h3 align="center">Delete Multiple Records using PHP Ajax with Animated Effect</h3><br />
    <div class="table-responsive">
                                <input type="checkbox" id="checkall" autocomplete="off"/>
                                <button type="button"  id="delete_all" class="btn btn-danger btn-xs">Delete</button> 
                    <table id ="testtable" class="table table-bordered">
                        <thead>
                        <tr>
                            <th class='no-sort' width="10%">
                              
                                
                                                          
                                
                            </th>
                            <th width="20%" height="30%">Name</th>
                            <th width="38%">Address</th>
                            <th width="7%">Gender</th>
                            <th width="25%">Designation</th>
                            <th width="5%">Age</th>
                        </tr>
                        </thead>
                        <?php
                        foreach($result as $row)
                        {
                            echo '
                            <tr>
                                <td>
                                    <input type="checkbox" name="delete_checkbox" autocomplete="off" class="delete_checkbox" value="'.$row["id"].'" />
                                </td>
                                <td>'.$row["name"].'</td>
                                <td>'.$row["address"].'</td>
                                <td>'.$row["gender"].'</td>
                                <td>'.$row["designation"].'</td>
                                <td>'.$row["age"].'</td>
                            </tr>
                            ';
                        }
                        ?>
                    </table>
                </div>
   </div>  
  </div>
    </body>  
</html> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...