Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia
Estou gravando dados do form através de ajax, porém o valor de um campo textarea não está sendo enviado.
Neste campo estou utilizando editor de texto SUMMERNOTE, sendo que o valor do campo somente é enviado após o formulário ser submetido ao menos 1 vez. Quando não utilizo o SUMMERNOTE, o valor do campo é enviado normalmente antes de submeter o formulário.
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<link rel="stylesheet" href="css/summernote.min.css">
<form id="e_par_so" method="post" class="form_cad" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<div class=row>
<div class="form-group col-md-offset-2">
<label>Meu Campo</label>
<textarea class="form-control form_input_recebe_foco" id="tx_par_soc" name="tx_par_soc" placeholder="" title=""><?php echo $_POST ["tx_par_soc"];?></textarea>
</div>
</div> <!-- /row -->
</form>
<script type="text/javascript" src="js/summernote.min.js"></script>
<script>
$(document).ready(function() {
$('#tx_par_soc').summernote();
});
</script>
No arquivo que grava os dados no BD, estou recebendo da seguinte forma:
$tx_par_soc = $_POST["tx_par_soc"];
O que estou fazendo de errado?Opa Edgard, obrigado pelo retorno.
Tentei desta maneira, porém não funcionou.
Meu código ajax
<script type="text/javascript">
$(document).ready(function(){
$("#sr_rasc").click(function(){
var serialize_dados = $('#e_par_so').serialize();
$.ajax({
type: "POST",
url: "ajx_as_par_soc_sr_rasc.php",
data: serialize_dados,
dataType: 'json',
encode: true,
cache: false,
}).done(function(retorno){
if (retorno.inserido == true) {
$("#f_msg_erro").html("<center><b><font color=blue>Rascunho salvo com sucesso!</font></b></center>");
}
else{
if (retorno.erros){
$('#f_msg_erro').html("");
for(var i=0;i<retorno.erros.length;i++) {
$('#f_msg_erro').append(retorno.erros[i] + "<br>");
}
}
else{
$("#f_msg_erro").html("<center><b>Não foi possível completar o lançamento. Tente novamente!</b></center>");
}
}
});
return false;
});
});
</script>A requisição ajax chega a ser feita ao servidor? Se sim, tente esse código.
<script>
$(document).ready(function(){
$("#sr_rasc").click(function(){
var serialize_dados = $('#e_par_so').serialize();
// Adicione essa linha vvv
serialize_dados += "&tx_par_soc=" + $("[name='tx_par_soc']").code());
$.ajax({
type: "POST",
url: "ajx_as_par_soc_sr_rasc.php",
data: serialize_dados,
dataType: 'json',
encode: true,
cache: false,
}).done(function(retorno){
if (retorno.inserido == true) {
$("#f_msg_erro").html("<center><b><font color=blue>Rascunho salvo com sucesso!</font></b></center>");
}
else{
if (retorno.erros){
$('#f_msg_erro').html("");
for(var i=0;i<retorno.erros.length;i++) {
$('#f_msg_erro').append(retorno.erros[i] + "<br>");
}
}
else{
$("#f_msg_erro").html("<center><b>Não foi possível completar o lançamento. Tente novamente!</b></center>");
}
}
});
return false;
});
});
</script>A requisição ajax é feita normalmente ao servidor, sendo que os valores dos demais campos são enviados normalmente. O dado do textarea é enviado normalmente quando não utilizo o summernote.
Alterei o código da forma como você sugeriu, porém não envia a requisição ajax dessa forma.
você tem que ler a documentação:
https://summernote.org/getting-started/#get--set-code
ou seja:
var markupStr = $('#tx_par_soc').summernote('code');
var serialize_dados = $('#e_par_so').serialize();
serialize_dados += '&summernote=' + markupStr;William, obrigado pela ajuda.
Tentei da seguinte forma:
<script>
$(document).ready(function() {
$('#tx_par_soc').summernote();
});
</script>
<script type="text/javascript">
$(document).ready(function(){
$("#sr_rasc").click(function(){
var markupStr = $('#tx_par_soc').summernote('code');
var serialize_dados = $('#e_par_so').serialize();
serialize_dados += '&summernote=' + markupStr;
$.ajax({
.....
Porém aparece a seguinte mensagem após envio:
summernote undefined
E continua não enviando o valor do textarea.
lá no php, você fez:
$tx_par_soc = $_POST["summernote"];
?Willian. Consegui receber o valor do textarea como você sugeriu, juntamente com uma pequena alteração.
Substituí
<script type="text/javascript" src="js/summernote.min.js"></script>
Para
<script type="text/javascript" src="js/summernote.js"></script>
E funcionou, porém os ícones do summernote não estão sendo mostrados corretamente.
Após várias pesquisas, realizei alterações com base em
[Icones summernote](https://translate.googleusercontent.com/translate_c?depth=1&hl=pt-BR&prev=search&rurl=translate.google.com.br&sl=en&sp=nmt4&u=https://stackoverflow.com/questions/36034892/icons-not-showing-with-summernote-rails&xid=17259,15700019,15700124,15700149,15700168,15700173,15700186,15700190,15700201&usg=ALkJrhghjkyAX-OJBT8oP8TvvG2uEeqqpA)
Localmente funcionou, porém em servidor externo não funcionou. Pode ser algum bloqueio do servidor? Grato.Creio que não.
Veja no console do browser o que aparece, provavelmente você não subiu as imagens para o servidor, ou o caminho delas está incorreto.
Substituí/atualizei a pasta font no servidor e os ícones apareceram normalmente. Obrigado aos amigos pela ajuda. Tópico resolvido.
Esse seu código não tem nada semelhante a um Ajax. rs
Mas então, dando uma pesquisada aqui achei uma possível solução:
// Parte abaixo inserida: