Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Speichern Sie Daten in PHP / Mysql mit Inline-Bearbeitung in CKEditor

Sie brauchen etwas AJAX-Magie. Über JavaScript innerhalb der Seite erhalten Sie das bearbeitete HTML. Dann senden Sie es an den Server, wo es von einem PHP-Skript abgerufen und an MySQL weitergegeben werden kann.

Hier ist ein einfacher Testfall, der Ihnen die Grundlagen zeigt.

Beginnen wir mit dem bearbeitbaren HTML.

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

Wir brauchen auch eine "Speichern"-Schaltfläche, die verwendet wird, um das POST-Ereignis zu starten.

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

Eine solche Schaltfläche könnten wir gut in der CKEditor-Symbolleiste selbst positionieren, aber das würde mehr Codierung erfordern, und ich überlasse das jemandem, der besser in JavaScript ist als ich.

Natürlich möchten Sie CKEditor einbinden. Für meinen Beispielcode verwende ich auch jQuery, das ich für das AJAXing der Ergebnisse verwende.

<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>

Nun das Skript, das ausgeführt wird, wenn Sie auf die Schaltfläche "Speichern" klicken. Es wird CKeditor verwenden, um den bearbeiteten HTML-Code abzurufen, und dann jQuery, um ihn zu senden.

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

Das war's, Sie brauchen clientseitig nichts weiter.

Auf dem Server muss der PHP-Code vorhanden sein, der ausgeführt wird, wenn das Skript den aktualisierten HTML-Code POSTET. Das Skript muss save.php heißen und sich im selben Verzeichnis wie der HTML-Code befinden, wenn Sie meinen Code wörtlich verwenden. Mein Einzeiler hier speichert Ihren HTML-Code einfach in einer temporären Datei im /tmp-Ordner. Fühlen Sie sich frei, stattdessen Ihre MySQL-Magie hinzuzufügen.

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