Ir para conteúdo

POWERED BY:

Arquivado

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

designer_rondon

[Resolvido] substituir espaços por %20 para serem enviados por URL

Recommended Posts

Galera, sou novo na área e peguei de cara um sistema de criação de ocorrências. Tenho um formulário em asp que envia dados pra um banco access. Este está funcionando normal. Meu problema é a busca desses dados no banco. Na mesma página onde criei quatro caixas suspensas onde a busca é executada pela string na pág busca.asp. seguem códigos asp da mesma:

 

<%@ language="vbscript"%>
<%
Set ConectaDB = Server.CreateObject("ADODB.Connection") 'criando o objeto de conexão
Set RS = Server.CreateObject("ADODB.Recordset") 'criando o Recordset

ConectaDB.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("..\bd\intranet.mdb") 'abrindo o driver do access e especificando o caminho do DB

dim acao, equipamento_alarmado, dia, mes, ano, hora, usuario 'Declarando as variaveis

acao = Request.QueryString("acao") ' atribuindo valores as variaveis
Equipamento_alarmado = Request.Form("equipamento_alarmado")
dia = Request.Form("dia")
mes = Request.Form("mes")
ano = Request.Form("ano")
hora = Request.Form("hora")
%>
 
<%
if acao = 1 and equipamento_alarmado <> -1 and dia <> -1 and mes <> -1 and ano <> -1 then

strSQL = "SELECT * FROM preenchimento_checklist WHERE equipamento_alarmado LIKE '%" & equipamento_alarmado & "%' AND dia LIKE '%" & dia & "%' AND mes LIKE '%" & mes & "%' AND ano LIKE '%" & ano & "%'"
RS.Open strSQL, ConectaDB 'abrindo o objeto de conexão e executando a pesquisa

if RS.EOF then
  Response.Write("Nenhum resultado encontrado...")
else
  while not RS.EOF
  numero_checklist = rs("numero_checklist")
  dia = rs("dia")
  mes = rs("mes")
  ano = rs("ano")  
  hora = rs("hora")
  equipamento_alarmado = rs("equipamento_alarmado")
  id_equipamento = rs("id_equipamento")
  ip_equipamento = rs("ip_equipamento")
  problema_encontrado = rs("problema_encontrado")
  causa = rs("causa")
  acionamento = rs("acionamento")
  comunicacao = rs("comunicacao")
  envio_de_email = rs("envio_de_email")
  teste_efetuado = rs("teste_efetuado")
  usuario = rs("usuario")
  data_envio_do_checklist = rs("data_envio_do_checklist")
	
  RS.MoveNext
  Response.Write "<a href=form.asp?usuario="&usuario&">"clique aqui"</a>" & " <BR> " ' escrevendo o resultado da busca
  wend
  
end if
RS.Close ' destruindo as variaveis de Recordset
set RS = Nothing

end if

conectaDB.Close 'fechando a conexão
set conectaDB = Nothing
%>

Até aí tudo bem...

 

na página form.asp eu coloquei o código:

 

<%
numero_checklist = Request.QueryString("numero_checklist")
dia = Request.QueryString("dia")
mes = Request.QueryString("mes")
ano = Request.QueryString("ano")
hora = Request.QueryString("hora")
equipamento_alarmado = Request.QueryString("equipamento_alarmado")
id_equipamento = Request.QueryString("id_equipamento")
ip_equipamento = Request.QueryString("ip_equipamento")
problema_encontrado = Request.QueryString("problema_encontrado")
causa = Request.QueryString("causa")
acionamento = Request.QueryString("acionamento")
comunicacao = Request.QueryString("comunicacao")
envio_de_email = Request.QueryString("envio_de_email")
teste_efetuado = Request.QueryString("teste_efetuado")
usuario = Request.QueryString("usuario")
data_envio_do_checklist = Request.QueryString("data_envio_do_checklist")
%>

e nos locais onde eu preciso exibir eu coloco : <%=numero_checklist%> etc...

 

Meu problema é que em alguns campos do banco de dados como por exemplo usuario são nomes e sobrenomes . São mais de uma palavra. Ex: Rodrigo Rondon e esse código printa na tela só a primeira palavra Rodrigo e o restante não aparece e dá erro em todas as outras strings que vem depois dessa. Eu preciso transformar os "espaços" existentes entre as palavras em %20 pra que o browser interprete como "espaços". Alguém pode me ajudar com isso ? Estou precisando entregar esse trabalho aqui na Empresa e nem sei programar direito. Abraços !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

texto = "meu texto aqui"

texto = server.urlencode(texto)

Com o resultado direto deu certo:

 

RS.MoveNext

 

Response.Write Server.HTMLEncode(usuario) & "<BR>"

wend

 

só que eu preciso colocar o Server.URLEncode dentro de um link. Aí tá dando erro:

 

Tipo de erro:

Erro de compilação do Microsoft VBScript (0x800A03EA)

Erro de sintaxe

/busca/busca.asp, line 225, column 15

 

Como posso arrumar esse erro?

 

Não to conseguindo

Compartilhar este post


Link para o post
Compartilhar em outros sites

como você fez?

Valeu pela atenção aí... jonathandj

 

Bem, como eu não sei muito, eu fiz assim:

 

Response.Write "<a href=form.asp?usuario=Server.HTMLEncode(usuario)>" & equipamento_alarmado & " - " & hora & "hs - " & usuario & "</a>" & " <BR> " ' escrevendo o resultado da busca

wend

 

 

só que ele coloca Server.HTMLEncode(usuario) como se fosse o nome do usuário. rsrsrsrs

 

só que na verdade o (usuario) teria que ser a variável... EU cnosegui fazer funcionar o

Server.HTMLEncode(usuario) fora do <a href=... , mas quando eu o coloco dentro do <a href=... dá problema...

 

entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deveria ser assim:

 

Response.Write "<a href=""form.asp?usuario=" & Server.HTMLEncode(usuario) & """>" & equipamento_alarmado & " - " & hora & "hs - " & usuario & "</a>" & " <BR> " ' "

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deveria ser assim:

 

Response.Write "<a href=""form.asp?usuario=" & Server.HTMLEncode(usuario) & """>" & equipamento_alarmado & " - " & hora & "hs - " & usuario & "</a>" & " <BR> " ' "

Funcionou hargon... Que Deus te abençoe amigo... Vlw mesmo...

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.