Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal boa tarde, sei que não gostam muito de responder perguntas de novatos, mais não eu estaria aki se realmente não estivesse com um problema a alguns dias, desde já agradeço a compreensão,
estou com o seguinte problema, possuo um formulário e gostaria que os dados fossem passados pra uma outra página e me retornassem com uma certa verificação, utilizando a função .post do jquery.
Acontece que um dos dados do formulario é um textarea utilizando a biblioteca CKeditor, os dados que são digitados nela não passam na primeira vez que o botão submit é acionado. Somente na segunda vez. Se a biblioteca for retirada os dados passam normalmente.
Segue os códigos das duas páginas (teste.php e teste2.php) e o site para baixar o CKeditor.
teste.php
<script type="text/javascript" src="/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#form_sitio_2').submit(function() {
var testearea = $("#testearea");
var teste = $("#teste");
$.post("teste2.php",{
testearea:testearea.val(),
teste:teste.val()
},
function(data){
$("#resposta").html(data);
}
, "html");
return false;
});
});
</script>
<form action="#" method="post" id="form_sitio_2">
<div style="width:1000;"><textarea id="testearea" class="ckeditor"></textarea></div>
<div>Teste:<input type="text" id="teste" value="" /></div>
<div ><input type="submit" value="teste" name="submit" /></div>
<div id="resposta"></div>
</form>
teste2.php
<?php
echo "<div>INPUT:". $_POST['teste']."</div>";
echo "<div>TEXTAREA:".$_POST['testearea']."</div>";
?>
Desde já obrigado.
Amigo tentei fazer como você falo mais não de certo, o jquery não identifica o getData() como uma função dele da erro no script, descobri tbm que isso so ocorre no firefox, no I.E funciona normalmente.
não identifica pq realmente não é uma função do jquery.
é uma função da lib do editor.
você precisa usar o getData() apartir dos códigos do editor, usando o instanciamento q você já fez.
Willam Bruno, consegui muito obrigado vou postar aki como ficou o script caso alguém tenha a mesma dúvida.
<script type="text/javascript">
$(document).ready(function() {
$('#form_sitio_2').submit(function() {
var testearea = CKEDITOR.instances.testearea.getData();
var testearea = $("#testearea");
var teste = $("#teste");
$.post("teste2.php",{
testearea:testearea,
teste:teste.val()
},
function(data){
$("#resposta").html(data);
}
, "html");
return false;
});
});
</script>
Isso tbm ocorre no tinyMCE pra resolver é assim
var testearea = tinyMCE.get('testearea').getContent();
Exatamente =)
Parabéns.
No TinyMCE eu já tinha até feito um post no meu blog:
http://wbruno.com.br/2011/04/05/resgatar-conteudo-de-editor-rico-tinymce/
só não postei, pq não sabia q você ia usar ele tb.
O do TinyMCE foi apenas como curiosidade.. hehehehehehehe
Vou acompanhar seu blog agora...
Vlw
Perfeitooooooo!!!!
Poxa, procurei para caramba isso.
Estava tendo passar o textarea via .getJson e não ia, com esse seu post deu certo.
Vlw.
Bem interessante, anotado. :thumbsup:
opa! bem vindo ao fórum!
somos todos iniciantes cara..
oq acontece, é que para resgatar o conteudo do editor, você não pode mais usar a forma: testearea.val(), pois o elemento foi 'trocado'.
para dar certo, você precisa ver na documentação da ferramenta:
http://docs.cksource.com/
a forma correta.
pelo que vi aqui, você consegue com o metodo getData():
http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#getData