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