Mysql
 sql >> Base de données >  >> RDS >> Mysql

Enregistrer les données en PHP/Mysql avec modification en ligne dans CKEditor

Vous avez besoin d'un peu de magie AJAX. Via JavaScript à l'intérieur de la page, vous obtenez le code HTML modifié. Ensuite, vous l'envoyez au serveur où un script PHP le récupère et peut le transmettre à MySQL.

Voici un cas de test simple qui vous montrera les ficelles du métier.

Commençons par le HTML modifiable.

<div id='textToBeSaved' contenteditable='true'>
    <p>Using the <strong>Terminal</strong> in OS X makes you all-powerful.</p>
</div>

Nous avons également besoin d'un bouton "Enregistrer" qui sera utilisé pour démarrer l'événement POST.

<button onclick='ClickToSave()'>Save</button>

Un tel bouton pourrait bien être positionné dans la barre d'outils de CKEditor elle-même, mais cela nécessiterait plus de codage et je le laisserai à quelqu'un qui est meilleur en JavaScript que moi.

Bien sûr, vous souhaitez inclure CKEditor. Pour mon exemple de code, j'utiliserai également jQuery, que j'utiliserai pour AJAXer les résultats.

<script src='https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'></script>
<script type='text/javascript' src='CKEditor4/ckeditor.js'></script>

Maintenant, le script qui s'exécutera lorsque vous appuierez sur le bouton "Enregistrer". Il utilisera CKeditor pour saisir le code HTML modifié, puis jQuery pour l'envoyer.

<script type='text/javascript' language='javascript'>
// <![CDATA[
function ClickToSave () {
    var data = CKEDITOR.instances.textToBeSaved.getData();
    $.post('save.php', {
        content : data
        })
    }
// ]]>

Ça y est, vous n'avez besoin de rien d'autre côté client.

Sur le serveur, vous devez avoir le code PHP qui agira lorsque le script POSTERA le HTML mis à jour. Le script doit s'appeler save.php et être positionné dans le même répertoire que le HTML si vous utilisez mon code textuellement. Mon one-liner ici enregistrera simplement votre HTML dans un fichier temporaire à l'intérieur du dossier /tmp. N'hésitez pas à ajouter votre magie MySQL à la place.

<?php
file_put_contents('/tmp/serverside.html', $_POST['content']);
?>