Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Salve dados em PHP/Mysql com edição inline no CKEditor


Você precisa de alguma magia AJAX. Via JavaScript dentro da página você obtém o HTML editado. Então você o envia para o servidor onde um script PHP o obtém e pode passá-lo para o MySQL.

Aqui está um caso de teste simples que mostrará as cordas.

Vamos começar com o HTML editável.
<div id='textToBeSaved' contenteditable='true'>
    <p>Using the <strong>Terminal</strong> in OS X makes you all-powerful.</p>
</div>

Também precisamos de um botão "Salvar" que será usado para iniciar o evento POST.
<button onclick='ClickToSave()'>Save</button>

Esse botão poderia ser posicionado na própria barra de ferramentas do CKEditor, mas isso exigiria mais codificação e deixarei isso para alguém que é melhor em JavaScript do que eu.

Claro que você deseja incluir CKEditor. Para meu código de exemplo, também usarei jQuery, que usarei para AJAXing dos resultados.
<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>

Agora o script que será executado quando você pressionar o botão "Salvar". Ele usará o CKeditor para pegar o HTML editado e, em seguida, o jQuery para enviá-lo.
<script type='text/javascript' language='javascript'>
// <![CDATA[
function ClickToSave () {
    var data = CKEDITOR.instances.textToBeSaved.getData();
    $.post('save.php', {
        content : data
        })
    }
// ]]>



É isso, você não precisa de mais nada do lado do cliente.

No servidor, você deve ter o código PHP que atuará quando o script fizer o POST do HTML atualizado. O script deve ser chamado save.php e estar posicionado no mesmo diretório onde o HTML está se você usar meu código textualmente. Meu one-liner aqui apenas salvará seu HTML em um arquivo temporário dentro da pasta /tmp. Sinta-se à vontade para adicionar sua mágica do MySQL.
<?php
file_put_contents('/tmp/serverside.html', $_POST['content']);
?>