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

Busca no Dreamweaver com ou sem acentuação!


Vagner Nunes

Pergunta

Prezados,

Boa tarde.

Preciso da ajuda dos senhores.

A situação é a seguinte, tenho uma página onde é feito uma busca de municípios, porém quando o visitante digita um determinado Municipio que contém acento, o sistema não retorna resultados.

Ex.: No banco de dados no campo locais, está cadastrado Vitória, daí se o visitante digitar Vitoria (sem acento) o sistema não retorna resultados, porém se eu cadastrar o municipio sem acento, ele busca normalmente.

Tem como configurar a busca para retornar resultados independentemente se estiver ou não com acentuação no Dreamweaver?

Obrigado.

Sds,

Vagner Nunes

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Claro, basta você clicar em view>>code e fazer a implementação do código.

O código vai depender da linguagem que você está usando, mas a logica basicamente é:

1. Criar uma função "sem_acento" para tratar a str buscada onde você vai dar um replace em todos acentos possiveis

2. No seu Recordset/Query você implementa um OR ao comando SQL

SELECT * FROM TABELA where campo like '%VARRIAVEL_ORIGINAL%' OR campo like '%VARRIAVEL_SEM_ACENTO%'

Se você for um fã do modo design pode fazer a alteração do SQL diretamente no painel aplication

Link para o comentário
Compartilhar em outros sites

  • 0

Bom eu não trabalho com ASP faz alguns anos, ent'ao peguei um exemplo na net pra você, veja...

'-----------------------------------------------------
'Funcao:    RemoveAcentos(ByVal Texto)
'Sinopse:    Remove todos os acentos do texto
'Parametro: Texto: Texto a ser transformado
'Retorno: String
'Autor: Gabriel Fróes - www.codigofonte.com.br
'-----------------------------------------------------
Function RemoveAcentos(ByVal Texto)
    Dim ComAcentos
    Dim SemAcentos
    Dim Resultado
    Dim Cont
    'Conjunto de Caracteres com acentos
    ComAcentos = "ÁÍÓÚÉÄÏÖÜËÀÌÒÙÈÃÕÂÎÔÛÊáíóúéäïöüëàìòùèãõâîôûêÇç"
    'Conjunto de Caracteres sem acentos
    SemAcentos = "AIOUEAIOUEAIOUEAOAIOUEaioueaioueaioueaoaioueCc"
    Cont = 0
    Resultado = Texto
    Do While Cont < Len(ComAcentos)
    Cont = Cont + 1
    Resultado = Replace(Resultado, Mid(ComAcentos, Cont, 1), Mid(SemAcentos, Cont, 1))
    Loop
    RemoveAcentos = Resultado
End Function
Como você pode ver é uma estrutura basica, resgata a str, da um laco e dentro do laco le a str e substitui as str com acentos. você vai chamar essa funcao passando a Str (palavra buscada) por uma varriavel, você pode simplesmente criar uma varriavel
Dim vari
vari=Request.QueryString("busca")

e chamar a funcao com ela mesmo, depois você passa o valor pra dentro do seu select

Link para o comentário
Compartilhar em outros sites

  • 0

Prezado,

A busca continua não localizando com ou sem acentuação.

A algo de errado que estou fazendo?

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/Conn.asp" -->

<%
Function RemoveAcentos(ByVal Texto)
    Dim ComAcentos
    Dim SemAcentos
    Dim Resultado
    Dim Cont
    'Conjunto de Caracteres com acentos
    ComAcentos = "ÁÍÓÚÉÄÏÖÜËÀÌÒÙÈÃÕÂÎÔÛÊáíóúéäïöüëàìòùèãõâîôûêÇç"
    'Conjunto de Caracteres sem acentos
    SemAcentos = "AIOUEAIOUEAIOUEAOAIOUEaioueaioueaioueaoaioueCc"
    Cont = 0
    Resultado = Texto
    Do While Cont < Len(ComAcentos)
    Cont = Cont + 1
    Resultado = Replace(Resultado, Mid(ComAcentos, Cont, 1), Mid(SemAcentos, Cont, 1))
    Loop
    RemoveAcentos = Resultado
End Function
%>
<%
Dim Municipios__ComAcentos
Municipios__ComAcentos = "1"
If (Request.QueryString("cidade")  <> "") Then 
  Municipios__ComAcentos = Request.QueryString("cidade") 
End If
%>
<%
Dim Municipios__SemAcentos
Municipios__SemAcentos = "2"
If (Request.QueryString("cidade")    <> "") Then 
  Municipios__SemAcentos = Request.QueryString("cidade")   
End If
%>
<%
Dim Municipios
Dim Municipios_numRows

Set Municipios = Server.CreateObject("ADODB.Recordset")
Municipios.ActiveConnection = MM_Conn_STRING
Municipios.Source = "SELECT *  FROM cadastro  WHERE cidade LIKE '%" + Replace(Municipios__ComAcentos, "'", "''") + "%' OR cidade LIKE '%" + Replace(Municipios__SemAcentos, "'", "''") + "%'"
Municipios.CursorType = 0
Municipios.CursorLocation = 2
Municipios.LockType = 1
Municipios.Open()

Municipios_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = -1
Repeat1__index = 0
Municipios_numRows = Municipios_numRows + Repeat1__numRows
%>
<%
Dim MM_paramName 
%>
<%
' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

Dim MM_keepNone
Dim MM_keepURL
Dim MM_keepForm
Dim MM_keepBoth

Dim MM_removeList
Dim MM_item
Dim MM_nextItem

' create the list of parameters which should not be maintained
MM_removeList = "&index="
If (MM_paramName <> "") Then
  MM_removeList = MM_removeList & "&" & MM_paramName & "="
End If

MM_keepURL=""
MM_keepForm=""
MM_keepBoth=""
MM_keepNone=""

' add the URL parameters to the MM_keepURL string
For Each MM_item In Request.QueryString
  MM_nextItem = "&" & MM_item & "="
  If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
    MM_keepURL = MM_keepURL & MM_nextItem & Server.URLencode(Request.QueryString(MM_item))
  End If
Next

' add the Form variables to the MM_keepForm string
For Each MM_item In Request.Form
  MM_nextItem = "&" & MM_item & "="
  If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
    MM_keepForm = MM_keepForm & MM_nextItem & Server.URLencode(Request.Form(MM_item))
  End If
Next

' create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL & MM_keepForm
If (MM_keepBoth <> "") Then 
  MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
End If
If (MM_keepURL <> "")  Then
  MM_keepURL  = Right(MM_keepURL, Len(MM_keepURL) - 1)
End If
If (MM_keepForm <> "") Then
  MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)
End If

' a utility function used for adding additional parameters to these strings
Function MM_joinChar(firstItem)
  If (firstItem <> "") Then
    MM_joinChar = "&"
  Else
    MM_joinChar = ""
  End If
End Function
%>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>RH - &Aacute;rea Administrativa</title>
<style type="text/css">
<!--
body {
    background-color: #F4F4F4;
}
.style1 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-weight: bold;
    color: #FFFFFF;
}
.style2 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-weight: bold;
}
.style4 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
}
-->
</style></head>

<body>
<table width="770" border="0" align="center">
  <tr>
    <td bgcolor="#FFFFFF"><table width="770" border="0">
      <tr>
        <td colspan="2"><div align="center"><img src="../imagens/logomarca.gif" width="170" height="100" /></div></td>
        </tr>
      <tr>
        <td colspan="2" bgcolor="#333333"><div align="center" class="style1">RH - Banco de Curriculos </div></td>
        </tr>
      <tr>
        <td colspan="2" bgcolor="#F2F20F"><div align="center" class="style2">&Aacute;rea Administrativa </div></td>
        </tr>
      <tr>
        <td colspan="2" valign="top"><table width="817" border="0" align="center">
            <tr>
              <td width="35"><span class="style4">ID</span></td>
              <td width="175"><span class="style4">nome</span></td>
              <td width="54"><span class="style4">cpf</span></td>
              <td width="92"><span class="style4">cidade</span></td>
              <td width="158"><span class="style4">email</span></td>
              <td width="67"><span class="style4">telefone</span></td>
              <td width="82"><span class="style4">celular</span></td>
              </tr>
            <% While ((Repeat1__numRows <> 0) AND (NOT Municipios.EOF)) %>
              <tr>
                <td><span class="style4"><%=(Municipios.Fields.Item("ID").Value)%></span></td>
                <td><span class="style4"><A HREF="curriculos_detalhe.asp?<%= Server.HTMLEncode(MM_keepNone) & MM_joinChar(MM_keepNone) & "ID=" & Municipios.Fields.Item("ID").Value %>"><%=(Municipios.Fields.Item("nome").Value)%></A></span></td>
                <td><span class="style4"><%=(Municipios.Fields.Item("cpf").Value)%></span></td>
                <td><span class="style4"><%=(Municipios.Fields.Item("cidade").Value)%></span></td>
                <td><span class="style4"><%=(Municipios.Fields.Item("email").Value)%></span></td>
                <td><span class="style4"><%=(Municipios.Fields.Item("telefone").Value)%></span></td>
                <td><span class="style4"><%=(Municipios.Fields.Item("celular").Value)%></span></td>
                </tr>
              <% 
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  Municipios.MoveNext()
Wend
%>
          </table>
          <p> </tr>
      
      <tr>
        <td colspan="2" bgcolor="#F2F20F"><div align="right"><a href="admin.asp" class="style4">Voltar</a></div></td>
        </tr>
    </table></td>
  </tr>
</table>
</body>

</html>
<%
Municipios.Close()
Set Municipios = Nothing
%>

Sds,

Vagner Nunes

Link para o comentário
Compartilhar em outros sites

  • 0

Creio que não seja desta forma que você chama uma função em asp

Municipios__SemAcentos = Request.QueryString("cidade");

Tente assim:

Municipios__SemAcentos = RemoveAcentos(Request.QueryString("cidade"))

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