Ir para conteúdo

POWERED BY:

Arquivado

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

fabinhosantos

[Resolvido] autocomplete com asp e ajax

Recommended Posts

Pessoal encontrei um codigo autocomplete aqui no forum e ele me retorna no input a opção escolhida, só que eu preciso tambem que ele me retorne o ID do registro no BD para que eu coloque em um campo hidden já que quando eu enviar o formulario vou precisar do id para gravar no BD.

 

- Como eu posso recuperar alem do campo nome o campo id?

- Tem como eu recuperar um terceiro campo (endereço) e exibir em uma div abaixo do input?

 

Segue o código:

 

Default.asp

       Parametros de Conexao ao Banco
       SERVIDOR_DO_BANCO = "localhost"
       NOME_DO_BANCO = "eventospb"
       USUARIO_DO_BANCO = "mateus"
       SENHA_DO_BANCO = "123456"

       Conexao com o Banco de dados
       Dim conexao
       Set conexao = Server.CreateObject("ADODB.Connection") 
       conexao.Open = "Provider=MSDASQL;Driver={SQL Server};Server="&SERVIDOR_DO_BANCO&";Database="&NOME_DO_BANCO&";UID="&USUARIO_DO_BANCO&";PWD="&SENHA_DO_BANCO&";" 'Efetua a Conexao

       ' Pega valor
       valor = Request.QueryString("valor")

       ' SQL de pesquisa
       sql = "SELECT desc_local FROM local WHERE UPPER(desc_local) like UPPER('%"&valor&"%') AND desc_local IS NOT NULL GROUP BY desc_local ORDER BY desc_local ASC"
       Set query = conexao.execute(sql)
       Do While Not query.eof
               ' Lista o nome
               response.write query("desc_local")&"|"&query("desc_local")&vbCrLf
               query.movenext
       Loop

       Set query = Nothing
       Set conexao = Nothing

 

Lista_nomes.asp

<html>
   <head>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
       <title>Auto Complete</title>

       <link href="jquery.autocomplete.css" type="text/css" rel="stylesheet" />
       <script src="jquery-1.3.js" language="javascript"></script>
       <script src="jquery.autocomplete.js" language="javascript"></script>

       <script type="text/javascript" language="javascript">

                       $(document).ready(function(){
                               //Ao digitar executar essa fun?o                                          
                               $("#nome").focus().autocomplete("lista_nomes.asp",{ 
                                                                                           minChars: 0 //N?ero minimo de caracteres para aparecer
                                                                                         , matchContains: true //Sempre aparecer somente os que tem rela?o ao digitado
                                                                                         , scrollHeight: 220 //altura da lista dos nomes
                                                                                         , selectFirst: false //vim como padr? o primeiro selecionado
                               })

                       })

               </script>
   </head>

   <body>
       <input name="nome" id="nome" type="text" size="20" /><br>
   </body>
</html>

 

Eu vi algo parecido neste link só que para php:

 

Clique aqui

Clique aqui

 

O problema do exemplo do link é adaptar para asp...

Obrigado pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim

 


$("#nome").focus().autocomplete("lista_nomes.asp?id="$("input[name=id]").attr("id"),{ 


<input name="nome" id="nome" type="text" size="20" />
<input name="id" id="25" type="text" size="20" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

saloeric

 

Fiz o que voçê falou mas deixou de fazer a consulta, ou seja, digito no primeiro e input e não é mais apresentado os registros do BD...

 

obrigado pela atenção

 

 

tente assim

 


$("#nome").focus().autocomplete("lista_nomes.asp?id="$("input[name=id]").attr("id"),{ 


<input name="nome" id="nome" type="text" size="20" />
<input name="id" id="25" type="text" size="20" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente por assim só para testar

 


 $("#nome").focus().autocomplete("lista_nomes.asp?id=9999",{ 
                                                                                           minChars: 0 //N?ero minimo de caracteres para aparecer
                                                                                         , matchContains: true //Sempre aparecer somente os que tem rela?o ao digitado
                                                                                         , scrollHeight: 220 //altura da lista dos nomes
                                                                                         , selectFirst: false //vim como padr? o primeiro selecionado
                               })

veja se no seu lista_nomes.asp recebe o valor do id


Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz a mudança e voltou a buscar no banco...

 

como testo se esta recebendo id na página lista_nomes.asp? ela não esta sendo executada em segundo plano via ajax?

 

valeu mais uma vez.......

 

tente por assim só para testar

 


 $("#nome").focus().autocomplete("lista_nomes.asp?id=9999",{ 
                                                                                           minChars: 0 //N?ero minimo de caracteres para aparecer
                                                                                         , matchContains: true //Sempre aparecer somente os que tem rela?o ao digitado
                                                                                         , scrollHeight: 220 //altura da lista dos nomes
                                                                                         , selectFirst: false //vim como padr? o primeiro selecionado
                               })

veja se no seu lista_nomes.asp recebe o valor do id


Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um request.querystring("id")

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um request.querystring("id")

 

o comando eu sei, o que eu digo é que: a pagina lista_nomes.asp é exucutada a partir da pagina default.asp via ajax... onde eu vou colocar o comando e visualizara o retorno?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá, em vez de dar a resposta dos registos encontrados no ficheiro lista_nomes.asp, ponha isso em comentários e dê nessa página o response.write request.querystring("id")

 


você deve ter algo do genero

response.write rs("nome")

em vez disso

faça response.write request("id"), no autocomplete em vez de aparecer o nome vai aparecer o id supostamente


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

comentei a linha atual e inclui outra enviando o id...

 

quando vou digitar no input ele retorna o id que foi passado.

 

Agora como retornar um conteudo no input que digito e outro conteudo no segundo input?

 

'response.write query("id")&"|"&query("logradouro")&vbCrLf
response.write id&vbCrLf

 

valeu mesmo cara pela ajuda

 

olá, em vez de dar a resposta dos registos encontrados no ficheiro lista_nomes.asp, ponha isso em comentários e dê nessa página o response.write request.querystring("id")

 


você deve ter algo do genero

response.write rs("nome")

em vez disso

faça response.write request("id"), no autocomplete em vez de aparecer o nome vai aparecer o id supostamente


Compartilhar este post


Link para o post
Compartilhar em outros sites

existe um ótimo exemplo e um artigo que postei, dá uma olhada , pode te ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz uma busca no lab. de script e na seção de artigos, caso não encontre me mande um email no xanburzum@terra.com.br , que te dou um reply com o code.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual erro ele esta apresentando...

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.