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

(Resolvido) Enviando por Javascript e recebendo em ASP


yogodoshi

Pergunta

Aee galera, quem é que pode me ajudar nisso?

Preciso jogar uma string COM CARACTERES ESPECIAIS para outra página onde vou trabalhar essa string com ASP.

Atualmente estou fazendo assim: pegando o texto, concatenando na url da página ASP e mandando abrir a página, ae eu pego o texto com request.querystring e uso.... só que quando o texto tem caracteres especiais como "ç, á, é..." não funciona....

Qual a melhor maneira deu fazer isso?

É uma busca em ajax que eu to fazendo.

Tá tudo funcionando, menos esse aspecto dos caracteres especiais...

vejam o código:

meu java script:

if (document.getElementById('rua') != null){
    var rua = document.getElementById('rua').value
    alert(rua)
    rua = "&rua="+rua
    }
    else {
    var rua = ""    
    }

        xmlhttp.open("POST", "buscado_linhas.asp?"+buscado+tipo_busca+tipo_rua+linha+rota+rua,true);
        xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded; charset=iso-8859-1');
        xmlhttp.onreadystatechange=function() { 
                    document.getElementById('resultado').innerHTML = 'Aguarde...'
           if(xmlhttp.readyState == 4){
                    document.getElementById('resultado').innerHTML = xmlhttp.responseText
                }}
            xmlhttp.send('aloha')
onde buscado, tipo_busca e tal são outros parametros.... tá tudo funcionando, o único problema é quando o valor de rua (que é um text field) vem com algum caracter especial o código ASP:
rua = Lcase(Request.QueryString("rua"))

ae depois eu tratava a variavel e tal.... só que se eu puxar o valor dessa varíavel nesse momento, os caracteres especiais que foram enviados ficam aparecendo como "?" e "ã§"...

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

já tem tanto isso quanto <% Response.Charset="ISO-8859-1" %>

em todas as páginas =S

você pode ver funcionando aqui:

http://www.infomarket.com.br/tijuquinha/busca_linhas.asp

Vai na tab "busca por rua" e depois escreve algum nome com caracteres especiais...

eu coloquei pra dar um alert com o que você procurou da maneira que o javascript envia e depois aparece como response.write o resultado que o ASP recebe...

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

  • 0

você tá colocando o <%Response.Charset="ISO-8859-1"%> no começo da linha?

Porque caso contrário não vai funcionar mesmo. você está misturando os métodos post e get, eu acho que não tem problema já que está tentando recuperar por GET, teste usando ajax só pelo metodo get caso já esteja usando o charset no começo do script.

Testei aqui e funcionou...manda sua string pra cá:

http://free.7host07.com/ForLearn/ajax.asp?q=

Veja se retorna direito.

Link para o comentário
Compartilhar em outros sites

  • 0

eu mandei praí e n retorno nada...

to desistindo já...

tem como você me fazer um favorzao ou alguém...

alguém q tem um arquivo em asp que pegue uma string com caracter especial e consiga buscar no banco essa string com caracter especial via ajax/ asp TERIA COMO DISPONIBILIZAR PLZ ???

pelo amor de deeuuussss

já estou ficando maluco com esses caracteres especiais que não funcionaammm!!!

e nem1 exemplo que eu encontrei na net funciona com caracteres especiais...

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

  • 0

Cara, não tenha nada pronto...

O método que usei ali naquele arquivo é bem simples, só peguei a string pelo método request.querystring e enviei de volta.... Teria que funcionar perfeitamente se estivesse mandando pelo método GET, eu testei e funcionou, então o problema pode ser no javascript, tenho a impressão de que o problema pode estar nessa mistura ae dos dois tipos, get e post no script.

Agora...que caracteres especiais está falando? Agora me surgiu uma dúvida, eu achei que estivesse falando de acentos, agora não tenho tanta certeza.

Link para o comentário
Compartilhar em outros sites

  • 0

é de acentos que eu estou falando sim. =p

mas cara, onde eu misturei post com get? eu só to usando get... =S

xiii, agora que eu vi... o código que eu postei tá com post... vou postar de novo, o código atual...

http://www.yogodoshi.com/asp.txt

http://www.yogodoshi.com/javascript.txt

Agradeço a atenção desde já, brigadao cara!

Link para o comentário
Compartilhar em outros sites

  • 0

Yogodoshi, o código tá enorme, meu forte não é nem asp nem banco de dados. O script tem encoding, decoding, substituição de caractéres...pode ser qualquer coisa.

Eu acho que seria melhor você diminuir esse código todo dividindo por partes, fazendo vários testes com pequenas partes do script pra ver se a parte está funcionando como deveria para depois juntar para formar o todo.

Não é no javascript o problema, eu peguei o javascript que usou e testei naquele link que te passei de testes, funcionou, testa ae também, TEM QUE FUNCIONAR.

Teste.htm

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Página teste</title>

<script>
try{
    xmlhttp = new XMLHttpRequest();}catch(ee){try{
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
    catch(E){xmlhttp = false;}}}


</script>


</head>
<body>
<div id="resultado"></div>

<script>

    xmlhttp.open("GET","http://free.7host07.com/ForLearn/ajax.asp?q=ãõáàóçêâ, ta funcionando poww...",true);
        xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded; charset=iso-8859-1');
        xmlhttp.onreadystatechange=function() {
                    document.getElementById('resultado').innerHTML = 'Aguarde...'
           if(xmlhttp.readyState == 4){
                    document.getElementById('resultado').innerHTML = xmlhttp.responseText
                }}
            xmlhttp.send(null)


</script>

</body>
</html>

Esse código está funcionando como deve. Então tenta tirar os encodings, os scripts replace, tenta diminuir isso para tentar achar o problema em questão. Tente usar um script pequeno e simples que adicione no bd o valor com acentos e que pegue o mesmo valor e mostra na tela, verifique se o bd está retornando como desejado.

Não desista não, pode ser que venha ainda alguém que manja melhor desse assunto e ajude. Enquanto isso faça os testes que te falei.

Vai postando...

Link para o comentário
Compartilhar em outros sites

  • 0

cara, não funciono com a url "http://free.7host07.com/ForLearn/ajax.asp?q=ãõáàóçêâ" porque "permissão negada para chamar o metodo xmlhttp.open" porque a url tah em outro servidor e tal...

ae criei um arquivo assim:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Lista</title>
</head>
<%
Response.Charset="ISO-8859-1"
%>
<body>
<%
q = request("q")
response.write(q)
%>

</body>
</html>

e olha como veio o resultado no Firefox:ãõáà óçêâ

agora no IE7 APARECEU CERTO!

como q pode !?!?!??!

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

  • 0

AH é....estão em domínios diferentes....

É que eu uso uma espécie de terminal de javascript, de um projeto que desenvolvi, aí eu testo localmente....Aí funciona.

Se você testar localmente eu tenho a impressão de que funciona, se testar no seu servidor realmente não vai funcionar.

Vou falar uma coisa pra você...Não Faço A Menor Idéia! do que está acontecendo.

Como pode funcionar no ie e não no FF? Sei lá!!! rsrsrsrs

Eu testei o mesmo código que fez aqui em casa e funcionou tanto no iE quanto no FF. Bom eu não tenho o FF instalado, tenho o kmeleon que é uma versão mais enxuta do FF. DEVERIA renderizar e funcionar exatamente igual ao FF...mas vai saber...

Tenta ver com alguma outra pessoa que tenha FF instalado pra ver se também acontece o mesmo. Meu tem charset pra tudo quanto é lado rsrsrs e mesmo assim não funciona...que inferno!!

Boa sorte o/

[edit] Realmente fica estranho no FF, testei no servidor, não funciona como no cliente. Só funcionou direito no FF quando tirei o response.charset...

No iE começou a dar uns erros de sistema...sinistro...

Link para o comentário
Compartilhar em outros sites

  • 0

E aí pessoal!

Fiz uns testes aqui, e parece que algumas coisas interessantes aconteceram: parece que o tipo de navegador influi no funcionamento.

No código do lado cliente abaixo, comentei as linhas modificadas:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Página teste</title>

&lt;script>
try{
    xmlhttp = new XMLHttpRequest();}catch(ee){try{
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
    catch(E){xmlhttp = false;}}}


</script>


</head>
<body>
<div id="resultado"></div>

&lt;script>
    // Passando também o nome do navegador...
    xmlhttp.open("GET","testeajax.asp?q=ãõáàóçêâ, ta funcionando poww...&Navegador=" + navigator.appName,true);
        xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded; charset=iso-8859-1');
        xmlhttp.onreadystatechange=function() {
                    document.getElementById('resultado').innerHTML = 'Aguarde...';
           if(xmlhttp.readyState == 4){
                    // Para funcionar no IE7, deve ser utilizado unescape() - sem ele funciona apenas no FF...
                    document.getElementById('resultado').innerHTML =unescape(xmlhttp.responseText);
                }}
            xmlhttp.send(null)


</script>

</body>
</html>
Agora o lado servidor...
<%
Dim strNomeNavegador: strNomeNavegador = Request.QueryString("Navegador").Item
Dim strAjax: strAjax = Request.QueryString("q").Item

If strNomeNavegador = "Microsoft Internet Explorer" Then
    Response.Write Escape(strAjax)
Else
    Response.Write strAjax
End If
 %>

Isso funcionou tanto no IE7 quanto no FF! Espero que isso ajude!

[]'s a todos!

Link para o comentário
Compartilhar em outros sites

  • 0

Grande sabino!!! Matou.

Eu sinceramente não estava mais sabendo como resolver esse problema.

Seria interessante um pino desse tópico na minha opinião, isso é uma coisa que vira e mexe dá dor de cabeça. Pede ae pro modera sabino, ele vai estudar o caso e ver se vale a pena e tal.

Salvador da pátria hhuahauhau.

Akeleabrassssss.

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade nem você nem eu podemos. Reporte, use o botão reportar e descreva pra ele. Se o moderador achar necessário ele pina. Isso foi uma sugestão minha só, se não interessar nem é preciso.

Akeleabrassssss

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...