Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113
Testo editabile con Scriptaculous | HTML.it
Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Testo editabile con Scriptaculous

Come permettere agli utenti di modificare in tempo reale grazie a Script.aculo.us il testo di una pagina web senza bisogno di ricaricarla
Come permettere agli utenti di modificare in tempo reale grazie a Script.aculo.us il testo di una pagina web senza bisogno di ricaricarla
Link copiato negli appunti

Se avete già avuto a che fare con un wiki, saprete sicuramente che il punto forte di un sistema del genere sta nel fatto che chiunque può collaborare all'approfondimento di un dato argomento modificando o aggiungendo contenuti alla pagina web.

Script.aculo.us ci mette a disposizione un oggetto, Ajax.InPlaceEditor, che rende molto facile definire come modificabile il testo contenuto in una pagina web; questo oggetto gestisce le modifiche tramite delle richieste Ajax.

La pagina web che prenderemo in esame in questo articolo visualizzerà un semplice testo generato dal servizio web Lorem Ipsum e permetterà agli utenti di modificare il testo visualizzato. Ecco l'esempio (le modifiche non sono visibili sulla pagina in quanto non è implementata la parte server-side). Tutti il codice usato è contenuto in questo file zip.

Vediamo in breve i passaggi chiave che andremo poi ad approfondire nel codice:

  • Quando l'utente sposterà il cursore all'interno del paragrafo, esso verrà evidenziato in giallo. Se l'utente a quel punto cliccherà su di esso, verrà trasformato in una textarea.
  • Quando l'utente cliccherà sul bottone “Ok”, una richiesta Ajax invierà il contenuto della textarea al server. Altrimenti, se l'utente cliccherà sul bottone “Cancel” la textarea sparirà e non verrà inviata alcuna richiesta lato server.
  • Il server, al ricevimento del nuovo testo tramite l'oggetto Ajax.InPlaceEditor, deciderà se visualizzarlo o meno applicando i dovuti filtri (parole offensive etc...).
  • Se tutto andrà a buon fine la modifica sarà subito visibile in pagina.

Consideriamo ora il codice HTML della pagina web sotto riportato  e l'associato Javascript:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>Abilitazione alla modifica da parte degli utenti del testo di una pagina web</title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <link rel="stylesheet" type="text/css" href="css/stile.css" media='screen'>
 </head>
 <body>
  <div id='contenitore'>
  <h3 class="titolo">Testo Editabile</h3>
  <p class="testo" id='editText'>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 
Nullam rutrum eros non neque. In a magna et velit auctor pellentesque. 
Nam est libero, consectetuer quis, condimentum ut, pellentesque sed, lectus. 
......</p>
 </div>								 


 <script  src="prototype.js" type="text/javascript"></script>
 <script  src="scriptaculous.js" type="text/javascript"></script>
 <script type="text/javascript">
  window.onload=function(){
   	new Ajax.InPlaceEditor('editText', 'nonEsiste.php',{rows:15,
   	cols:50, cancelControl:'button', okText:'Salva',
    cancelText:'Annulla', savingText:'Salvataggio in corso...',
    clickToEditText:'Clicca per modificare', formId:'value'	
});
  }
 </script>
 </body> 
</html>

Il testo che vogliamo rendere modificabile verrà inserito in un tag <p> con un dato attributo id="editText".

Ecco l'oggetto della libreria Script.aculo.us che si occuperà di gestire la modifica.

 window.onload=function(){
 new Ajax.InPlaceEditor('idElemento', 'paginaLatoServer',{rows:15,
   cols:50, cancelControl:'button', okText:'Salva',
   cancelText:'Annulla', savingText:'Salvataggio in corso...',
   clickToEditText:'Clicca per modificare', formId:'value'
});

Il codice sopra riportato specifica nell'ordine, l'id dell'elemento abilitato alle modifiche (editText), l'URL relativo al componente server a cui viene inviata la richiesta HTTP e alcuni parametri che modificheranno il comportamento del componente Javascript:

  • Rows
  • Cols
  • CancelControl
  • OkText
  • CancelText
  • SavingText
  • ClickToEditText
  • FormId

Esistono molti altri parametri oltre a questi sopra citati, per saperne di più consultate la documentazione delle API.

Ti consigliamo anche