Ir para conteúdo

POWERED BY:

Arquivado

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

riperes

Autocomplete com Ajax e duas variáveis

Recommended Posts

Estou trabalhando com essa função do http://loopj.com/jquery-tokeninput/...

 

com a ajuda do colega aqui no fórum eu consegui rodar...

mas essa função passa só um parâmetro para o arquivo php fazer o select no banco... eu queria passar mais uma...

 

tentei diversas formas... como colocar um getElementbyID, ou tentei colocar uma outra função dentro... mas não rolou... alguém tem uma ideia??

	$('#select_cidade').change(function(){...

 

$(document).ready(function() {
            $("#txt_estado").tokenInput("estado.ajax.php", {
            });
        });
        

 

ele chama esse script: http://loopj.com/jquery-tokeninput/src/jquery.tokeninput.js

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser um parâmetro get?

 

[inline]$("#txt_estado").tokenInput("estado.ajax.php?parametro=valor", {[/inline]

 

Se for um inteiro ou uma string simples vai funcionar, agora, se precisar passar um array por exemplo já complica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Fernando,

 

eu com javascript sou uma negação... estou voltando a aprender programação depois de uns 8 anos sem fazer nada....

 

mas como eu coloco uma variável no lugar do valor, pegando de outro campo no form?

 

 

eu tentei o getElementbyID('nome_do_campo_preenchido'), mas não deu certo... o que você acha?

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, acho que entendi sua dúvida, vamos lá:

 

O TokenInput é meio limitado quanto a isso.

Esse segundo parâmetro que você precisa enviar, vem de um campo tipo <select>? Caso positivo, beleza, precisamos pegar o valor selecionado, podemos fazer assim:

[inline]var cliente = $('#select_cidade').find('option:selected').val();[/inline]

O tokenInput é inicializado no carregamento da página, isso vai nos gerar um problema, pois primeiro o usuário seleciona a cidade certo? Então teoricamente quando carregar a página, não teremos a cidade.

Então vamos inicializar o tokeninput somente quando o usuário selecionar a cidade, pode ser assim?

Ai ficaria assim:

$('#select_cidade').change(function(){
   var cidade = $(this).find('option:selected).val();
   $('#txt_estado').tokenInput("estado.ajax.php?cidade="+cidade, {});
});

Até ai tudo bem, só que isso gerou outro problema, todo vez que o usuário selecionar a cidade, ele vai criar um novo tokenInput.

Para resolver isso, podemos remover por padrão qualquer tokenInput existente antes de inserir:

 

$('#txt_estado .token-input-list').remove(); /* Remove o Input criado pelo plugin */
$('#txt_estado').val(''); /* Limpa o valor para garantir */	

Ficaria assim então:

 

$('#select_cidade').change(function(){
   $('#txt_estado .token-input-list').remove(); /* Remove o Input criado pelo plugin */
   $('#txt_estado').val(''); /* Limpa o valor para garantir */	

   var cidade = $(this).find('option:selected).val();
   $('#txt_estado').tokenInput("estado.ajax.php?cidade="+cidade, {});
});

Se ficar muito complicado, sugiro trocar por um plugin mais robusto.

 

PS: Não entendi porque primeiro selecionada a cidade e depois o estado :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz o teste como vc formulou aí, mas não rolou....

a seleção de cidade primeiro e depois estado foi só um exemplo rsrsrs.. mas a ideia é essa mesma...

 

 

 

Na verdade o campo é um input text que eu to preenchendo as informações usando também o tokenInput, ou seja, eu preencho um tokeninput e com o que ele trouxe eu uso pra filtrar no segundo tokeninput..

 

exemplo:

Escolho o estado e com o estado selecionado eu filtro as cidades para eu digitar no tokeninput da cidade e só aparecerão cidades daquele estado...

 

Fernando, você falou que tem outros plugins mais robustos... você tem algum plugin pra indicar que eu possa fazer isso???

 

 

valeu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, mais fácil ainda!

Só isso:

 

var estado = $("#txt_estado").val();
$('#txt_cidade').tokenInput("cidade.ajax.php?estado="+estado, {});

 

Nesse caso como não estamos validando se o usuário selecionou ou não o estado, você pode validar essa informação na requisição Ajax, pois o parâmetro estado no cidade.ajax.php vai estar vazio.

 

Ou nos métodos disponíveis no plugin:

 

http://loopj.com/jquery-tokeninput/

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.