Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

willwalker

[Resolvido] Acentos em ajax.

Recommended Posts

Eu tenho um formulário que envia via ajax com método POST a mensagem. Mas ela não chega com os acentos, fica com um monte de caracteres estranhos. Segue abaixo os dois scripts:

 

Javascript:

function enviar_mensagens() {
document.getElementById('resultado').innerHTML = '<div style="position: absolute; width: 174px; height: 24px; top: 50%; left: 50%; margin-left: -87px; margin-top: -12px;"><div style="width: 150px; height: 24px; line-height: 24px; float: left;" align="center">Enviando Mensagem...</div><div style="width: 24px; height: 24px; line-height: 24px; float: left;" align="center"><img src="layout/loading.gif" width="24" height="24" /></div>';

var de = document.getElementById('de').value;
var para = document.getElementById('para').value;
var assunto = document.getElementById('assunto').value;
var mensagem = document.getElementById('mensagem').value;

if(de != "" && para != "" && assunto != "" && mensagem != ""){

var url = "scripts.php?op=enviar_mensagem";
var params = "de="+de+"¶="+para+"&assunto="+assunto+"&mensagem="+mensagem;
http.open("POST", url, true);

http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close")

http.onreadystatechange = msg;
http.send(params);
}else{
document.getElementById('resultado').innerHTML = "Preencha todos os campos, eles são obrigatórios.";
}
}

function msg() {
if(http.readyState == 4){
var response = http.responseText;
document.getElementById('resultado').innerHTML = response;
setTimeout("javascript: mensagens();", 3000);
}
}

PHP:

<!-- Enviando Mensagem -->
<?php if($_GET['op'] == "enviar_mensagem"){

$de = htmlentities($_POST['de']);
$para = htmlentities($_POST['para']);
$assunto = htmlentities($_POST['assunto']);
$mensagem = htmlentities($_POST['mensagem']);
$anexo = "";

mysql_query("INSERT INTO `mensagens` (`de`, `para`, `assunto`, `mensagem`, `anexo`, `data`, `lido`) VALUES ('".$de."', '".$para."', '".$assunto."', '".$mensagem."', '".$anexo."', NOW(), '0')")or die(mysql_error());

echo "Mensagem Enviada.";
} ?>

<!-- Respondendo Mensagem -->
<?php if($_GET['op'] == "responder_mensagem"){

$de = htmlentities($_POST['de']);
$para = htmlentities($_POST['para']);
$assunto = htmlentities($_POST['assunto']);
$mensagem = htmlentities($_POST['mensagem']);
$anexo = "";

mysql_query("INSERT INTO `mensagens` (`de`, `para`, `assunto`, `mensagem`, `anexo`, `data`, `lido`) VALUES ('".$de."', '".$para."', 'RE:".$assunto."', '".$mensagem."', '".$anexo."', NOW(), '0')")or die(mysql_error());

echo "Mensagem Enviada.";
} ?>

Abraços Walker http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma olhada aqui:

http://forum.imasters.com.br/index.php?/topic/173603-resolvido%26nbsp;dica-solucao-final-para-acentuacao-no-ajax/

 

 

Além disso, os charsets precisam ser do mesmo tipo, no banco, no HTML e no server-side.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma olhada aqui:

http://forum.imasters.com.br/index.php?/topic/173603-resolvido%26nbsp;dica-solucao-final-para-acentuacao-no-ajax/

 

 

Além disso, os charsets precisam ser do mesmo tipo, no banco, no HTML e no server-side.

 

Eu tb estava com esse problema....estou usando isso:

 

<?
header("Content-Type: text/html; charset=ISO-8859-1",true);
?>	

Coloquei dentro do body da página....e esta funcionando.....veja se resolve seu problema....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.