2012-06-28 2 views
0

J'ai la table de données de jquery plugin dataTables (http://datatables.net/) que je veux actualiser sur le succès d'ajax. J'ai essayé le code suivant mais ça ne marche pas. Toute aide sera appréciéedataTable refresh sur ajax success

$(document).ready(function() { 
    oTable = $('#mytable').dataTable(); 
    var fa = 0; 
    $('#submit tbody td ').click(function() { 
    var gCard = $('#mytable tbody').delegate("tr", "click", rowClick); 


    }); 
    function rowClick() { 
     fa = this; 
     var id = $("td:eq(1)", this).text(); 
     cardNumber = $.trim(id);  
     $.ajax({ 
      url : 'myurltopostto', 
      type : 'POST', 
      data : { 
       id : id 

      }, 
      success : function(data) { 
       oTable.fnDraw(); //wanted to update here 
      }, 
      error : function() { 
       console.log('error'); 
      } 
     }); 
    } 

}); 
+0

définir "refresh" en détail – charlietfl

+0

pas sûr de ce que vous voulez dire, mais après avoir cliqué sur le bouton soumettre, je veux que la table montre les dernières données dans le tableau – Autolycus

+0

est données retournées dans le succès ajax? si oui, est-ce juste des lignes html ou une table html complète ou une page entière ou json ou ????? Vous ne pouvez pas deviner ce que fait votre autre code, ou simplement envoyer un ID au serveur dans votre application. – charlietfl

Répondre

2

Vous pouvez utiliser: fnDeleteRow qui prendra soin de rafraîchir le code html de table et les données en interne, consulter les détails de l'API ici:

http://datatables.net/ref

oTable.fnDeleteRow(fa); 
+0

seulement le problème avec ceci est que si je fais la pagination, cela n'apportera pas d'autres enregistrements qui ne sont pas dans la vue. Et si je regarde 10 disques à la fois, sur le 9ème disque il restera bloqué et ne fonctionnerait pas. – Autolycus

+0

essayez fnDraw après suppression puis – charlietfl

+0

cela ne fonctionne pas .. déjà essayé que – Autolycus

0

bonjour mon dears programmeurs ... désolé ... mon anglais est très mauvais mais je vous aide ... ma suite est la suivante:

<script type="text/javascript"> 

     function Ajax() 
     { 
      var 
       $http, 
       $self = arguments.callee; 

      if (window.XMLHttpRequest) { 
       $http = new XMLHttpRequest(); 
      } else if (window.ActiveXObject) { 
       try { 
        $http = new ActiveXObject('Msxml2.XMLHTTP'); 
       } catch(e) { 
        $http = new ActiveXObject('Microsoft.XMLHTTP'); 
       } 
      } 

      if ($http) { 
       $http.onreadystatechange = function() 
       { 
        if (/4|^complete$/.test($http.readyState)) { 
         document.getElementById('ReloadThis').innerHTML = $http.responseText; 
         setTimeout(function(){$self();}, 10000); 
         $(this).hide("slow"); 
        } 
       }; 
       $http.open('GET', 'cls_Noticias/last_noticias.php', true); 
       $http.send(null); 
      } 

     } 

    </script> 

</head> 
<body> 

    <script type="text/javascript"> 
     setTimeout(function() {Ajax();}, 10000); 
    </script> 

    <div id="ReloadThis">Espere a que la pagina se actualice!</div> 

</body> 

bonne vie!