Comment puis-je enregistrer le contenu de l'éditeur en ligne sur le serveur?

J'utilise CKeditor pour permettre aux internautes d'éditer le contenu d'une page une fois connecté.

Je sais que je peux accéder aux données en utilisant:

var data = CKEDITOR.instances.editable.getData(); 

Mais je ne sais pas comment envoyer les données à un script afin que je puisse mettre à jour la base de données. Ce serait génial si le script fonctionnait chaque fois que quelqu'un a désélectionné un élément contenteditable … mais je ne sais pas si cela est possible.

Tous les conseils seraient géniaux! 🙂

Mon site est construit en utilisant php / mysql.

Quelque chose comme ça:

 CKEDITOR.disableAutoInline = true; CKEDITOR.inline( 'editable', { on: { blur: function( event ) { var data = event.editor.getData(); // Do sth with your data... } } } ); 

Notez que cela ne fonctionnera pas avec d'autres interactions comme: l'utilisateur appelé editor.setData() ou l'utilisateur a fermé la page Web pendant l'édition. Le contenu sera perdu dans de tels cas. Si j'étais vous, je préfère vérifier périodiquement les nouvelles données:

 CKEDITOR.disableAutoInline = true; var editor = CKEDITOR.inline( 'editable', { on: { instanceReady: function() { periodicData(); } } } ); var periodicData = ( function(){ var data, oldData; return function() { if ( ( data = editor.getData() ) !== oldData ) { oldData = data; console.log( data ); // Do sth with your data... } setTimeout( periodicData, 1000 ); }; })(); 
 CKEDITOR.inline('editable' ,{ on:{ blur: function(event){ if (event.editor.checkDirty()) console.log(event.editor.getData()); } } }); 

Essaye ça.

Il semble que l'événement «flou» puisse vous aider: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#event:blur