A che serve?
Per riempire/aggiornare una tabella con dati ottenuti con una richiesta asincrona utilizzando le librerie jQuery.
Com’è?
Il plugin è questo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | var baseuri = 'http://www.example.com/' $.fn.extend({ updateTable: function(){ var url = baseuri + 'ajax/' + $(this).attr('id') + '.php'; var table = $(this); $.ajax({ url: url, dataType: 'json', error: function(a,b,c) { alert(c); }, success: function(data, ts, xhr) { if(data.length > 0) { var html = ''; $.each(data, function() { html += '<tr>'; $.each(this, function(k, v){ html += '<td>' + v + '</td>'; }) html += '</tr>'; }); table.children('tbody').html( html ); } } }); } }); |
Come funziona?
Per funzionare correttamente serve un markup di questo tipo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ... <table id="list-entries"> <thead> <tr> <th>Nome</th> <th>Cognome</th> <th>Email</th> </tr> </thead> <tbody> <tr> <td colspan="3" class="center">Nessun elemento in lista</td> </tr> </tbody> </table> ... |
Il campo id sarà il nome dello script (in questo caso list-entries.php) alla quale la funzione $.ajax farà riferimento. Lo script si occuperà di prelevare i dati da un database e restituirli in formato json (in questo caso). I dati verranno inseriti all’interno del tag <tbody>. Di default lasciamo una riga di avviso nel caso non ci siano dati disponibili.
Per farlo funzionare basterà fare una chiamata classica del tipo
1 | $('#list-entries').updateTable(); |