2017-10-08 4 views
0

je l'ai mis dans la variable déjà, mais il me donne toujours une erreur et il dit erreur de référence uncaught OTABLE n'est pas définiJquery datatables erreur de référence uncaught

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#test").click(function(){ 
     $.ajax({ 
      url: "https://jsonplaceholder.typicode.com/posts", 
      success: function(result) { 
      var oTable = $("#datatable").DataTable({ 
       processing: true, 
       data: result, 
       columns: [ 
        {data: 'id'}, 
        {data: 'title'} 
       ] 
      }); 
      } 
     }); 
    }); 
    $("#reload").click(function(){ 
     oTable.DataTable().ajax.reload(); 
    }); 

}); 
</script> 

ici est mon html

<table id="datatable"> 
<thead> 
    <tr> 
    <th>ID</th> 
    <th>TITLE</th> 
    </tr> 
</thead> 
</table> 

s'il vous plaît aidez-moi Merci

+2

éléments notables ont la portée que dans la fonction de clic .. essayez de supprimer le « var » de « var OTABLE » –

Répondre

0

Espérons que cela fonctionnera pour vous

Utilisez Datatable méthode pour charger ajax,

Pas besoin d'initier à nouveau pour recharger l'utilisation Datatble oTable.ajax.reload();

j'ai changé oTable à la variable globale

$(document).ready(function() { 
 

 
      $("#reload").click(function() { 
 
       oTable.ajax.reload(); 
 
      }); 
 
      $("#test").click(function() { 
 
       window.oTable = $('#datatable').DataTable({ 
 
        "ajax": { 
 
         "url": "https://jsonplaceholder.typicode.com/posts", 
 
         "dataSrc": "" 
 
        }, 
 
        "columns": [{ 
 
          "data": "id" 
 
         }, 
 
         { 
 
          "data": "title" 
 
         }, 
 

 
        ] 
 
       }); 
 
      }); 
 
     });
<head> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
    <link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.0/css/jquery.dataTables.css"> 
 

 
    <script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script> 
 
    <script type='text/javascript'> 
 
     
 
     
 
    </script> 
 

 
</head> 
 

 
<body> 
 

 
    <button id="reload"> 
 
    reaload 
 
    </button> 
 
    <button id="test"> 
 
    test 
 
    </button> 
 

 
    <div class="container"> 
 
     <table id="datatable"> 
 
      <tr> 
 
       <th>ID</th> 
 
       <th>TITLE</th> 
 
      </tr> 
 

 
      </thead> 
 

 

 
     </table> 
 
    </div>

0

votre définition de variable oTable était sur le rappel onSuccess, de sorte qu'il ne peut pas appeler depuis l'extérieur de la portée de rappel onSuccess

+0

vous pourriez peut-être ajouter un peu code à votre réponse pour mieux illustrer votre pensée – MaVRoSCy