56 lines
No EOL
1.8 KiB
JavaScript
56 lines
No EOL
1.8 KiB
JavaScript
const quill = new Quill('#editor-container', {
|
|
theme: 'snow',
|
|
modules: {
|
|
toolbar: {
|
|
container: '#toolbar',
|
|
handlers: {
|
|
image: function() {
|
|
const input = document.createElement('input');
|
|
input.setAttribute('type', 'file');
|
|
input.setAttribute('accept', 'image/*');
|
|
input.click();
|
|
input.onchange = () => {
|
|
const file = input.files[0];
|
|
const reader = new FileReader();
|
|
reader.onload = (e) => {
|
|
const range = quill.getSelection();
|
|
quill.insertEmbed(range.index, 'image', e.target.result);
|
|
};
|
|
reader.readAsDataURL(file);
|
|
};
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// Préremplir le contenu de Quill avec les données de la base de données
|
|
quill.root.innerHTML = initialContent;
|
|
|
|
// Sauvegarder le contenu uniquement lorsque le bouton est cliqué
|
|
document.getElementById('save-button').addEventListener('click', () => {
|
|
const html = quill.root.innerHTML; // Contenu HTML, y compris les images en base64
|
|
console.log("Contenu HTML sauvegardé :", html); // Affiche ce que l'on va envoyer au serveur
|
|
|
|
// Envoi du contenu au serveur uniquement au clic
|
|
fetch('save-article.php', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify({ content: html }) // Le contenu de l'éditeur Quill
|
|
})
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
if (data.success) {
|
|
alert("Données sauvegardées !");
|
|
window.location.href = "admin.php"; // Redirection après la sauvegarde
|
|
} else {
|
|
alert("Erreur lors de la sauvegarde.");
|
|
}
|
|
})
|
|
.catch(error => {
|
|
console.error('Erreur:', error);
|
|
alert("Une erreur s'est produite.");
|
|
});
|
|
}); |