You are heretableEdit un plugin per jQuery
tableEdit un plugin per jQuery
La nuova versione del noto Framework javascript (la 1.3) ha introdotto l'interessantissimo metodo "live()" per gestire gli eventi su gli elementi presenti e generati del DOM. Ho testato questo metodo per un mini-applicativo che dovevo realizzare; quello che mi serviva era una tabella nella quale doveva essere possibile editare al volo alcuni dei suoi valori senza ricaricare la pagina. In particolare al clic di uno di questi elementi dovevano essere generati due classici bottoni per il salva e l'annulla, in modo da salvare tutti i valori editati in un unico clic. Per utilizzare il plugin basta includere l'ultima release di jQuery e richiamare lo script in questo modo
<script type="text/javascript" src="js/jquery-1.3.2.js"></script> <script type="text/javascript" src="js/tableEdit.js"></script> <script type="text/javascript"> <!--//--><![CDATA[//><!-- $(document).ready(function (){ $.tableEdit({ tabella: "daeditare", // id della tabella sulla quale applicare il plugin indirizzo: "http://www.signalkuppe.com/tutorial/editing/test.php", // url dello script lato server classe: "sopra", // classe per gestire gli hover sugli .edit form: "modifica", // id della form creata dinamicamente invio: "inviadati", // id del bottone di invio resetta: "azzera" // id del bottone per il reset }); }); //--><!]]> </script>
In pratica basta richiamare il file js che contiene il plugin e inizializzarlo settando alcuni parametri tra cui l'url dello script lato server tramite il quale vengono salvati i dati.
Principio di funzionamento
prima di tutto qui c'è una piccola demo
Lo script cerca all'interno della vostra tabella tutti gli elementi con classe edit e al clic li sostituisce con un tag input che permette di editare il loro valore. Per referenziare in modo univoco il valore, lo script utilizza l'attributo id dello span stesso. Di conseguenza basta applicare questa struttura a tutti gli elementi che vogliamo rendere editabili
<span class="edit" id="campo_indirizzo">Via Garibaldi 23</span>
Sicuramente esisteranno altre soluzioni, magari anche più efficienti, ma per essere un primo tentativo sono soddisfatto.
Ad esempio sarebbe bello introdurre anche la validazione lato client dei dati.



Come siamo messi riguardo all'accessibilità?
Se disabilito Javascript ovviamente non funziona più il plugin, ma almeno la parte html dovrebbe funzionare. O no?
in che senso la parte html?
senza javascript non vedi una semplice tabella non editabile?
Finché ce nè si può...
Ho provato a disabilitare Javascript dal browser e ovviamente la tabella non è editabile, ma in questo caso non sarebbe utile inserire un pulsante nel form (senza l'uso di Jquery) che ti rimanda alla pagina php per effettuare le modifiche?
Per i non vedenti o coloro che navigano con uno screen reader potrebbero avere serie difficoltà dato che viene a mancare l'accessibilità.
accessibilità e javascript non hanno nulla in comune.
Alessandro
Ciao davvero utile questo plugin, la validazione lato server come avviene ? E' libera ? Sia ajax che POST.DATA possono essere utilizzati ?
Ciao
Grazie
Ho trovato per caso questo sito perchè cercavo info su drupal e devo dire che è una gran bel sito, per immagini colori struttura, ti fa venire voglia di leggero !!! Complimenti.
Quanto ne vorrei sapere almeno 1/5 di ciò che sai tu su come si realizzano siti ! Io ci sto provando con drupal, ma non è facile realizzare ciò che ho nella mia testa !
Ciao omonimo :)
come fai ad inserire nei post il codice html senza che venga codificato, ossia in quelle bellissime finestre grigie così comode da usare?
Esiste un modulo che crea quasta classe: geshifilter ?
Grazie in anticipo,
Maldè
io di me che sono io
eccolo qui!
http://drupal.org/project/geshifilter
Finché ce nè si può...