Ir para conteúdo

POWERED BY:

Arquivado

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

kania

enviar Id no autocompletar

Recommended Posts

Olá pessoal do Mx Masters,

 

Gente estou montando um autocompletar em jquery, onde trabalho com 3 campos, sendo:

 

Campo 1: onde eu digito o que estou procurando

Campo 2: é montada uma combo com base no que foi digitado no campo 1

Campo 3: é montada uma combo com base no valor selecionado no campo 2

 

Meu problema esta no envio dos dados do campo 1, eu consigo fazer todo a montagem dos dados, montar o o select direitinho, porem ele sempre envia na variavel "q" somente o que foi digitado no campo 1, exemplo:

 

Digitei "res" ele envia "res", porem eu digitei "res" mas selecionei com item da lista mostrada "restaurantes", então ou eu gostaria que fosse enviado o dado "restaurantes", ou melhor ainda se for possivel enviar o id deste item selecionado, porque ai a referencia no próximo select é precisa.

 

Como posso fazer isto?

 

Meu Código

$(document).ready(function () {
	$('#oque').autocomplete(
		"busca_servico.asp", 
		{
			minChars: 2,
			selectFirst: true,
			width: 540,
			max: 15,
			matchSubset: true,
			matchContains: true,
			cacheLength: 0,
	})

No Select eu trago as informações assim:

Subs & "|"&IdSub & vbcrlf

Que esta retornando:

Restaurantes|746

Ou Seja o nome do item e o ID do item

 

Utilizando o símbolo "|" para depois buscar no jquery

 

 

Sei que tem a opção "extraParams:" porem tentei usar ela da seguinte forma:

extraParams: {id: function(row) {return row[1];}}

Mas sempre retorna: row is undefined

Porem se eu utilizar este mesmo ´codigo na opção "formatItem:" ele funciona sem erro

 

Tem como fazer o que quero fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim pessoal, eu mandei o valor do id em campo input hidden

 

$("#envia").html('<input type="hidden" name="enviar" id="enviar" value='+ sValue +'>');

o problema agora e´que não estou conseguindo recuperar este valor, quando roda a funcão que deve preencher a combo com os valores pegados apartir do id, ela vem vazia, o que parece é que a função que preenche a combo esta rodando antes da que envia o campo hidden

 

função que que envia o ID

 

$(document).ready(function () {
							
	function findValue(li) {
		if( li == null ) return alert("Não Informado!");
	 
		if( !!li.extra ) var sValue = li.extra[0];
	 
		else var sValue = li.selectValue;
		
		$("#envia").html('<input type="hidden" name="enviar" id="enviar" value='+ sValue +'>');
		
	 	//return sValue
		//alert("Id Selecionado: " + sValue);
	}	
	
	function selectItem(li) {
		findValue(li);
	}
	
	function lookupLocal(){
		var oSuggest = $("#oque")[0].autocompleter;
	 
		oSuggest.findValue();
	 
		return false;
	}
							
	$('#oque').autocomplete(
		"busca_servico.asp", 
		
		{
			minChars: 2,
			selectFirst: true,
			width: 540,
			max: 25,
			matchSubset: true,
			matchContains: true,
			cacheLength: 0,
			scrollHeight: 250,
			onItemSelect:selectItem,
			onFindValue:findValue,

	})

Função que preenche a combo com os estados, esta abaixo do código de cima

 

$("input[name=oque]").change(function(){
	$("select[name=uf]").html('<option value="0">Carregando...</option>');
	$.post("busca_estados.asp" , 
		 {uf:$("input[name=enviar]").val()},
		  function(valor){
			 $("select[name=uf]").html(valor);
		  }
		  )

Alguém sabe como da para resolver?

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.