CKeditor + ajax registering empty in bank

0

When I do an insert in the database, it only saves the date, time, idAgenda and idFk ... since the other fields of the textarea are registered as empty ... I believe it is the problem of instantiating the ckeditor, and if I manually enter in the input the ids it is registered ...

 <form method="post" class="form-control" id="form_ficha" enctype="multipart/form-data">
    <input type="text" id="Paciente" readonly="readonly" class="form-control" /><br />

  <input type="hidden"  name="id_agenda" id="IdAgenda" />
     <input type="hidden"  name="Fk" id="IdFk" />                

     <textarea id="ckregistro" name="registro"></textarea>

    <textarea name="exame" id="ck-exame"></textarea>

   <textarea name="atestado" id="ck-atestado"></textarea>

   <textarea name="risco" id="ck-risco"></textarea><br />

    <textarea name="laudo" id="ck-laudo"></textarea>

    <input type="hidden" value="<?php echo $date; ?>" id="data" name="data" />
    <input type="hidden" value="<?php echo $hora; ?>" id="hora" name="hora" /> 

   <button onclick="inserir_registo();" class="btn btn-primary col-md-2 col-12" style="color:#FFF;" type="submit">Cadastrar</button>
   </form>

Ajax Code

<script type="text/javascript">
function inserir_registo()
{
    var dadosajax = {
        'registro' : $("#ckregistro").val(),
        'exame' : $("#ck-exame").val(),
        'laudo' : $("#ck-laudo").val(),
        'risco' : $("#ck-risco").val(),
        'atestado' : $("#ck-atestado").val(),
        'IdAgenda' : $("#IdAgenda").val(),
        'IdFk' : $("#IdFk").val(),
        'hora' : $("#hora").val(),
        'data' : $("#data").val()
    };
    pageurl = 'ajax/proc_cad_ficha.php';
    //para consultar mais opcoes possiveis numa chamada ajax
    //http://api.jquery.com/jQuery.ajax/
    $.ajax({

        //url da pagina
        url: pageurl,
        //parametros a passar
        data: dadosajax,
        //tipo: POST ou GET
        type: 'POST',
        //cache
        cache: false,
        //se ocorrer um erro na chamada ajax, retorna este alerta
        //possiveis erros: pagina nao existe, erro de codigo na pagina, falha de comunicacao/internet, etc etc etc
        error: function(){
            alert('Erro: Inserir Registo!!');
        },
        //retorna o resultado da pagina para onde enviamos os dados
        success: function(result)
        { 

            //se foi inserido com sucesso
            if($.trim(result) == '1')
            {
                alert("O seu registo foi inserido com sucesso!");
            }
            //se foi um erro
            else
            {
                alert("Ocorreu um erro ao inserir o seu registo!");
            }

        }
    });
}

</script> 

Code php:

<?php
require_once('../Connections/BD.php'); 
$pdo = Database::conexao();

$exame = $_REQUEST['exame'];
$registro = $_REQUEST['registro'];
$atestado = $_REQUEST['atestado'];
$risco = $_REQUEST['risco'];
$laudo = $_REQUEST['laudo'];
$data = $_REQUEST['data'];
$hora = $_REQUEST['hora'];
$idAgenda = $_REQUEST['IdAgenda'];
$idFk = $_REQUEST['IdFk'];
    try{

       $stmte = $pdo->prepare("INSERT INTO tabfichas (Fk_Agenda_id, Fk_Cliente_id, RegistroMedico, Exame, Atestado, Laudo, Risco, Data, Hora, Anexo) VALUES (:idAgenda, :idFk, :registro, :exame, :atestado, :laudo, :risco, :data, :hora, :enviaArquivo)");

       $stmte->bindParam(":idAgenda", $idFk , PDO::PARAM_INT);
       $stmte->bindParam(":idFk", $idAgenda , PDO::PARAM_INT);
       $stmte->bindParam(":registro", $registro , PDO::PARAM_STR);
       $stmte->bindParam(":atestado", $atestado , PDO::PARAM_STR);
       $stmte->bindParam(":risco", $risco , PDO::PARAM_STR);
       $stmte->bindParam(":laudo", $laudo , PDO::PARAM_STR);
       $stmte->bindParam(":data", $data , PDO::PARAM_STR);
       $stmte->bindParam(":hora", $hora , PDO::PARAM_STR);
       $stmte->bindParam(":exame", $exame , PDO::PARAM_STR);
       $stmte->bindParam(":enviaArquivo", $envia_arquivo , PDO::PARAM_STR); 


       $stmte->execute();
       echo "1";
        // Executando e exibindo resultado
        //echo ($stmte->execute()) ? ('1') : ($stmte->errorInfo());
    }
   catch(PDOException $e){
       echo "0";
        echo ('Erro ao Cadastrar'."<br>");
        echo ($e);

}
    
asked by anonymous 09.07.2018 / 21:40

1 answer

2

Second CKEditor component documentation ( link ), how to get the field value is as follows:

CKEDITOR.instances.editor1.getData()

Where "editor1" is the element id, in the case "ck-attested", "ckregistro" etc.

I believe that in case of "ck-certificate", as it has a "-" in the middle, it works like this:

CKEDITOR.instances["ck-atestado"].getData()

Your code looks like this:

var dadosajax = {
    'registro' : CKEDITOR.instances["ckregistro"].getData(),
    'exame' : CKEDITOR.instances["ck-exame"].getData(),
    'laudo' : CKEDITOR.instances["ck-laudo"].getData(),
    'risco' : CKEDITOR.instances["ck-risco"].getData(),
    'atestado' : CKEDITOR.instances["ck-atestado"].getData(),
    'IdAgenda' : $("#IdAgenda").val(),
    'IdFk' : $("#IdFk").val(),
    'hora' : $("#hora").val(),
    'data' : $("#data").val()
};
    
09.07.2018 / 21:55