stampa questa pagina feed di signalkuppe.com/

You are heretableEdit un plugin per jQuery

tableEdit un plugin per jQuery

By admin - 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?

admin'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

admin's picture

Finché ce nè si può...

Post correlati

Non chiedetemi perchè ma mi è capitato di dover concatenare due viste in modo da passare i risultati di una vista come argomento di un'altra. In particolare dovevo passare il nid di un nodo come argomento della seconda vista e mostrare quindi il risultato della seconda vista nella vista di partenza. Non è complicato, basta utilizzare la funzione views_embed_view

Un trucchetto semplice ma secondo me molto utile per escludere da una vista dei nodi restituiti da una seconda vista. Il procedimento è molto semplice: fra gli argomenti della vista basta aggiungere "node: nid", e impostare questi parametri

Prima Drupalcon in una città a dir poco fantastica. Sabato riunione del core developer summit guidata da Kieran Lal vestito da monaco. Interessante il nuovo sistema di testing del codice, sarà introdotta una nuova funzionalità che consentirà di testare al volo le patch. Anche Javascript rienterà nel sistema di testing. Lato Front End si cercherà di creare delle linee guida di sviluppo delle UI, in modo da rendere il più possibile coerente l...

Purtroppo molti siti ospitati su Aruba, compreso questo basato su Drupal (aggiornato all'ultima versione), sono stati infettati. Il problema riguarda l'inserimento di uno script nel file index.php. Per risolvere il problema è necessario rimuovere lo script dal file e in seguito far riconsiderare il sito da google attraverso il pannello di controllo del servizio Strumenti per webmaster. Per evitare di incappare di nuovo in questo...

Da poco ho iniziato lo sviluppo della nuova versione del tema Marinelli per drupal. Uno dei miei obiettivi è quello di scrivere un codice conforme ai nuovi standard di marcatura, che segua il più possibile le indicazioni di accessibilità fornite dalle WCAG2. Come sappiamo l'uso delle intestazioni è di fondamentale importanza per strutturare il contenuto ed aiuta moltissimo nell'indicizzazione del sito...

Spesso per rendere un layout più accattivante conviene utilizzare un input type image al posto del classico bottone del submit, specialmente per la form di ricerca del sito. Drupal di default propone il classico submit per tutte le sue form; vediamo come utilizzare un' immagine per il submit della form di ricerca. Esistono diversi modi, il più pulito forse è quello di modificare la form attraverso un piccolo modulo scritto apposta per questa necessità. Un modulo non è altro che una cartella contenente due files