stampa questa pagina feed di signalkuppe.com/

You are heretableEdit un plugin per jQuery

tableEdit un plugin per jQuery

By lioz - Posted on 18 March 2009

icona che rappresenta il pluginLa 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.

Scarica il plugin

Peppigno's picture

Come siamo messi riguardo all'accessibilità?

Se disabilito Javascript ovviamente non funziona più il plugin, ma almeno la parte html dovrebbe funzionare. O no?

lioz's picture

in che senso la parte html?
senza javascript non vedi una semplice tabella non editabile?

Finché ce nè si può...

Peppigno's picture

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à.

Anonymous's picture

accessibilità e javascript non hanno nulla in comune.

Alessandro

Anonymous's picture

Ciao davvero utile questo plugin, la validazione lato server come avviene ? E' libera ? Sia ajax che POST.DATA possono essere utilizzati ?

Ciao
Grazie

Anonymous's picture

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 !

Malderius's picture

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

lioz's picture

Finché ce nè si può...

Utente anonimo ?

Registrati o effettua l'accesso su Signalkuppe! per contattarmi via mail

Contribuisci

Marinelli is and will always be free. However, if you enjoyed it, please consider a donation. Your contributions speed theme development.


paypal

Drupalcamp 2009