Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Problemas ao armazenar dados


alexandremanowar

Pergunta

E ae pessoal beleza

Fiz um códido que pega os dados de alguns <select> e armazena, a função esta funcionando normalmente esta armazenando! Porém os dados estão sendo armazenados de forma que tudo o que tem acento fica com síbolos, tipo a informação São Paulo fica Sçã Paulo, e todos os tipos de acentos ficam dessa forma!

Olha como esta o meu código:

function BTNArmazenar()
{
    if(ajax) 
    {
        var CodigoCentralizadora= "";
        var Centralizadora= "";
        var CodigoCusto = "";
        var Custo = "";
        var CodigoConta = "";
        var Conta = "";
        var CodigoSubConta = "";
        var SubConta = "";
    
        
        CodigoCentralizadora = document.getElementById("centralizadora").value;
        Centralizadora = document.getElementById("Centralizadora_"+CodigoCentralizadora).text;
        
        CodigoCusto = document.getElementById("ListaCusto").value;
        Custo = document.getElementById("Custo_"+CodigoCusto).text;
        
        CodigoConta = document.getElementById("ListaConta").value;
        Conta = document.getElementById("Conta_"+CodigoConta).text;
        
        CodigoSubConta = document.getElementById("ListaSub").value;
        SubConta = document.getElementById("SubConta_"+CodigoSubConta).text;
        
        
        
        
        ajax.open("POST", "armazena_vinculo.php", true);
        ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        
        ajax.onreadystatechange = function() 
        {
     
                
            if(ajax.readyState == 4 ) 
            {
                
                alert("dados armazenados com sucesso");
                            }
        }
        
        
        var params = "CodigoCentralizadora="+CodigoCentralizadora+"&Centralizadora="+Centralizadora+"&CodigoCusto="+CodigoCusto+"&Custo="+Custo+"&CodigoConta="+CodigoConta+"&Conta="+Conta+"&CodigoSubConta="+CodigoSubConta+"&SubConta="+SubConta;
        ajax.send(params);
    }
    
    
}
Código que amazana:
<?
    Header("Content-type: application/xml; charset=iso-8859-1"); 
    
    $CodigoCentralizadora= $_POST["CodigoCentralizadora"];
    $Centralizadora= $_POST["Centralizadora"];
    $CodigoCusto= $_POST["CodigoCusto"];
    $Custo= $_POST["Custo"];
    $CodigoConta= $_POST["CodigoConta"];
    $Conta= $_POST["Conta"];
    $CodigoSubConta = $_POST["CodigoSubConta"];
    $SubConta = $_POST["SubConta"];
    
    $data = date("Y-m-d");
    $hora = date("H:i:s");
    
    include "conectadeals.inc";
    
    $armazena = "insert into financa_vinculo(codigo_centralizadora,centralizadora,codigo_custo,custo,codigo_conta,conta,codigo_sub,subconta,data,hora)values";
                           $armazena .= "($CodigoCentralizadora,'$Centralizadora',$CodigoCusto,'$Custo',$CodigoConta,'$Conta',$CodigoSubConta,'$SubConta','$data','$hora')";
    $sql = mysql_query($armazena);

?>

Como posso arrumar isso?

Valeu

Editado por alexandremanowar
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

escreva

utf8_encode($var)

para escrever os dados na pag. não esqueça de setar o charset da pag como utf8

cas oesteja usando outro tipo de caracter. faça uma busca no site php.net com o tipo de caracter q você usa em seus sistemas.

espero ter ajudado. =D

cabei de ver você usa iso-8859-1

procurei no php.net e não achei nada. mas...

CLIQUE AQUI <- este endereço pode te ajudar no problema com a acentuação.

ou comece a usar utf-8 eu pelo menos só uso ele... =D

Link para o comentário
Compartilhar em outros sites

  • 0

E ae carinha beleza!

Então cara eu tentei da forma que você deixou e não funcionou, estudei aquele link do post que você mostrou tentei e também não deu certo. O que pode estar dando errado?

Link para o comentário
Compartilhar em outros sites

  • 0

Alexandre, talvez exista uma forma bem simples de fazer isso apenas usando uma linha em php, deve perguntar pros entendidos lá no fórum de php. Porém, sempre que se está trabalhando com ajax, é muito importante trabalhar com html entities. Na verdade é bom sempre trabalhar com html entities mas com ajax é mais importante ainda. Como muitos sistemas estão codificados de forma utf, deve utilizar códigos para representar acentos, cedilhas etc. Assim, seu sistema fica padronizado, sem precisar ficar usando decodificações para diferentes aplicações.

O que são html entities?

É isso:

Alexandre, talvez exista uma forma bem simples de
fazer isso apenas usando uma linha em php, deve perguntar
pros entendidos l&aacute; no f&oacute;rum de php. Por&eacute;m,
sempre que se est&aacute; trabalhando com ajax, &eacute; muito
importante trabalhar com html entities. Na verdade &eacute; bom
sempre trabalhar com html entities mas com ajax &eacute; mais
importante ainda. Como muitos sistemas est&atilde;o codificados
de forma utf, deve utilizar c&oacute;digos para representar acentos,
cedilhas etc. Assim, seu sistema fica padronizado, sem precisar
ficar usando decodifica&ccedil;&otilde;es para diferentes
aplica&ccedil;&otilde;es.

Eu sempre faço meus sites usando essa codificação, você não precisa saber os entities decor, existe um site que faz as conversões ao botar o texto: http://www.w3clubs.com/htmlentities.php

Como eu faço os sites na mão, não utilizo editores, então os textos que eu digito eu coloco no conversor e ele codifica todos os caracteres especiais em html entities.

Ok ? Aquele abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

E ae beleza!

Valeu pela força mas ainda estou perdido, a minha index esta ok a acentuação, tudo o que tem acentos esta funcionando, ela esta assim:

<?
header("Content-Type: text/html;  charset=ISO-8859-1");
echo "<center><span class='titulo'>vínculo finança</span></center>";
  
        ?>
            <script language="javascript" src="js/VerificaBrownser.js"></script>
            <script language="javascript" src="js/vincula_custo.js"></script>
            <script language="javascript" src="js/vinculo_financa.js"></script>
            <script language="javascript" src="js/vinculo_conta.js"></script>
            <script language="javascript" src="js/vinculo_subconta.js"></script>
            <link href="estilo.css" rel="stylesheet" type="text/css" />
            
            
             <form name="frmAjax">
            
            <fieldset class="fieldset10"><LEGEND class=legend1 align='center'>Centralizadora</LEGEND>        
            <span class="campo4">centralizadora: &nbsp;&nbsp;&nbsp;&nbsp;</span>
            <select name="centralizadora" id="centralizadora"  onChange="Dados(this.value);">
            <option id="opcoesCentralizadora" value="0" class="form"><span class="campo44">Escolha a centralizadora</span></option>
            <?
                $busca = mysql_query("select * from centralizadora order by nome");
                $linha = mysql_num_rows($busca);
                for($i=0; $i<$linha; $i++)
                {
                    $reg = mysql_fetch_row($busca);
                    ?>
                        <option id="Centralizadora_<?=$reg[4]?>"  value="<?=$reg[4]?>"><?echo $reg[0]; ?></option>
                    <?
                    
                    
                }
            ?>
            </select>
            </fieldset>
    
            <fieldset class="fieldset10"><LEGEND class=legend1 align='center'>Centro de Custo</LEGEND>        
            <span class="campo4">centro <span class="campo44">de</span> custo: &nbsp;&nbsp;</span>
            <select name="ListaCusto" id="ListaCusto" onChange="Conta(this.value);">
                <option id="opcoesCusto" value="0">Centro de custo</option>
            </select><br>
            </fieldset>        
    
            <fieldset class="fieldset10"><LEGEND class=legend1 align='center'>Conta</LEGEND>        
            <span class="campo4">Conta: &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
    
            <select name="ListaConta" id="ListaConta" onChange="SubConta(this.value);">
                <option id="opcoesConta" value="0">Conta</option>
            </select><br>
            </fieldset>
            
            <fieldset class="fieldset10"><LEGEND class=legend1 align='center'>SubConta</LEGEND>        
            <span class="campo4">SubConta: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
    
            <select name="ListaSub" id="ListaSub">
                <option id="opcoesSub" value="0">SubConta</option>
            </select>
            </fieldset>
            </form><br>
            <center><input type="submit" value="Armazenar" onclick="BTNArmazenar()" class="formbutton" ></center>
            
        <?
    
        
        
        include "colunadireita.inc";



        include "base.inc";

    }




}
?>
O meu js esta assim:
function BTNArmazenar()
{
    if(ajax) 
    {
        var CodigoCentralizadora= "";
        var Centralizadora= "";
        var CodigoCusto = "";
        var Custo = "";
        var CodigoConta = "";
        var Conta = "";
        var CodigoSubConta = "";
        var SubConta = "";
    
        
        CodigoCentralizadora = document.getElementById("centralizadora").value;
        Centralizadora = document.getElementById("Centralizadora_"+CodigoCentralizadora).text;
        
        CodigoCusto = document.getElementById("ListaCusto").value;
        Custo = document.getElementById("Custo_"+CodigoCusto).text;
        
        CodigoConta = document.getElementById("ListaConta").value;
        Conta = document.getElementById("Conta_"+CodigoConta).text;
        
        CodigoSubConta = document.getElementById("ListaSub").value;
        SubConta = document.getElementById("SubConta_"+CodigoSubConta).text;
        
        
        
        
        ajax.open("POST", "armazena_vinculo.php", true);
        ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    
        ajax.onreadystatechange = function() 
        {
     
                
            if(ajax.readyState == 4 ) 
            {
                
                alert("dados armazenados com sucesso");
                document.location.reload();
            }
        }
        
        
        var params = "CodigoCentralizadora="+CodigoCentralizadora+"&Centralizadora="+Centralizadora+"&CodigoCusto="+CodigoCusto+"&Custo="+Custo+"&CodigoConta="+CodigoConta+"&Conta="+Conta+"&CodigoSubConta="+CodigoSubConta+"&SubConta="+SubConta;
        ajax.send(params);
    }
    
    
}
O meu código php que o js busca esta assim:
<?
    //Header("Content-type: application/xml; charset=iso-8859-1"); 
    header("Content-Type: text/html;  charset=ISO-8859-1");
    include "ie.htm";
    echo "<LINK REL='STYLESHEET' HREF='estilo.css' TYPE='text/css'>";

    
    //header("Content-Type: charset=UTF-8");
    $CodigoCentralizadora= $_POST["CodigoCentralizadora"];
    $Centralizadora= $_POST["Centralizadora"];
    //$Centralizadora = utf8_encode($Centralizadora);
    $CodigoCusto= $_POST["CodigoCusto"];
    $Custo= $_POST["Custo"];
    $Custo = utf8_encode($Custo);
    $CodigoConta= $_POST["CodigoConta"];
    $Conta= $_POST["Conta"];
    //$Conta = utf8_encode($Conta);
    $CodigoSubConta = $_POST["CodigoSubConta"];
    $SubConta = $_POST["SubConta"];
    //$SubConta = utf8_encode($SubConta);
    
    $data = date("Y-m-d");
    $hora = date("H:i:s");
    
    include "conectadeals.inc";
    
    $armazena = "insert into financa_vinculo(codigo_centralizadora,centralizadora,codigo_custo,custo,codigo_conta,conta,codigo_sub,subconta,data,hora)values";
                           $armazena .= "($CodigoCentralizadora,'$Centralizadora',$CodigoCusto,'$Custo',$CodigoConta,'$Conta',$CodigoSubConta,'$SubConta','$data','$hora')";
    $sql = mysql_query($armazena);

?>

Acredito que a index e o código em php estão corretos acho que quem esta transmitindo errado os valores é o js, acredito que esta parte:

ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

Esta sendo responsável pelo encode dos caracteres, porém se for ele não sei onde corrigir o erro! Será que pode ser isso? Não acho outra alternativa a não que o problema esta no js!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...