Ir para conteúdo

Arquivado

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

alexweb2015

Pegar Value de option atual e passar para uma variavel

Recommended Posts

Gostaria de uma ajuda para solucionar um problema que estou a 2 dias tentando resolver, js nao é meu forte, mas mesmo assim tentei pesquisar em inumeros sites e nao achei a solução, vamos la....

Tenho 2 selects onde preciso resgatar o value de ambos e passar para uma variavel que fara uso delas:

<select name="campoOperacao" id="buscaOperacao">
	<option value="comprar" selected>Comprar</option>
	<option value="alugar">Alugar</option>
	<option value="lancamentos">Lançamentos</option>
</select>

<select name="campoTipo" id="buscaTipo">
	<option value="apartamentos" selected>Apartamento</option>
	<option value="casa-e-sobrado">Casa e sobrado</option>
	<option value="terreno">Terreno</option>
	<option value="rural">Rural</option>
	<option value="comercial">Comercial</option>
</select>

Ao resgatar o valor da value do option selecionado(ou trocado change) preciso passar este valor para duas variaveis:

source: "ajax.php?cod="+selecionaOperacao+"&cod2="+selecionaTipo+"",

O problema é que eu consigo pegar apenas o valor do option inicial ao abrir a pagina, mas se eu dou um change no select as 2 variaveis precisam atualizar os valores tambem, eis a questão nao consegui fazer isso.

 

Resumindo:

2 options onde selecionando uma nova opção(change) ou partindo das options selecionadas inicalmente(selected), ambas precisam me passar a value para estas 2 variaveis
var selecionaOperacao
var selecionaTipo

 

Agradeço a atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ué, é só declarar as variáveis assim:

 

var selecionaOperacao = document.nomeDoFormulario.campoOperacao.value;
var selecionaTipo = document.nomeDoFormulario.campoTipo.value;

 

Ou já que vc tem o id, assim tbm serviria:

 

var selecionaOperacao = document.getElementById('buscaOperacao').value;

var selecionaTipo = document.getElementById('buscaTipo').value;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não funcionou

acho que esta funcao autocomplete nao consegue pegar o value em tempo real(to imaginando)

 

 

<!doctype html><html lang="en"><head><meta charset="utf-8" /><title>TEST</title><link href="jquery-ui.min.css" rel="stylesheet" /><link href="autocomplete.css"  rel="stylesheet" /><script src="jquery-1.11.2.js"></script><script src="jquery-ui.min.js"></script><script src="jquery.ui.autocomplete.html.js"></script></head><body><form action="busca" method="get" enctype="multipart/form-data" name="formEnviar"><select name="campoOperacao" id="buscaOperacao">	<option value="comprar" selected>Comprar</option>	<option value="alugar">Alugar</option>	<option value="lancamentos">Lançamentos</option></select><select name="campoTipo" id="buscaTipo">	<option value="apartamentos" selected>Apartamento</option>	<option value="casa-e-sobrado">Casa e sobrado</option>	<option value="terreno">Terreno</option>	<option value="rural">Rural</option>	<option value="comercial">Comercial</option></select><input type="text" id="topic_title">  <input name="enviar" type="submit" value="enviar"></form>      </body> <script type="text/javascript">	$(function() { 		//implementado		$("#topic_title").val(''); 		$( "#topic_title" ).focus();		//implementado				var selecionaOperacao = document.getElementById('buscaOperacao').value;		var selecionaTipo = document.getElementById('buscaTipo').value;										alert('selecionados inicial: ' + selecionaOperacao + ' - ' + selecionaTipo);				$("#topic_title").autocomplete({			source: "ajax.php?cod="+selecionaOperacao+"&cod2="+selecionaTipo+"",			//source: "ajax.php?term=1&city=2&local=3",			minLength: 2,			select: function(event, ui) {				var value = ui.item.id;				var redireciona = ui.item.value;				if(value != '#') {					//location.href = '/url/' + selecionaOperacao + '-' + selecionaTipo + '-' + value;					location.href = '/url/' + value;					//jQuery("input[name='telefone']").val( '' );					$("#topic_title").val(''); 				}			},	 			html: true, // optional (jquery.ui.autocomplete.html.js required)	 		  // optional (if other layers overlap autocomplete list)			open: function(event, ui) {				$(".ui-autocomplete").css("z-index", 1000);			}		});	});			</script></html>

JS: jquery.ui.autocomplete.html.js

 

/* * jQuery UI Autocomplete HTML Extension * * Copyright 2010, Scott González (http://scottgonzalez.com) * Dual licensed under the MIT or GPL Version 2 licenses. * * http://github.com/scottgonzalez/jquery-ui-extensions*/ (function( $ ) {var proto = $.ui.autocomplete.prototype, 	initSource = proto._initSource;function filter( array, term ) {	var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );	return $.grep( array, function(value) {		return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() );	});}$.extend( proto, {	_initSource: function() {		if ( this.options.html && $.isArray(this.options.source) ) {			this.source = function( request, response ) {				response( filter( this.options.source, request.term ) );			};		} else {			initSource.call( this );		}	},	_renderItem: function( ul, item) {		return $( "<li></li>" )			.data( "item.autocomplete", item )			.append( $( "<a></a>" )[ this.options.html ? "html" : "text" ]( item.label ) )			.appendTo( ul );	}});})( jQuery ); 

help???

Compartilhar este post


Link para o post
Compartilhar em outros sites


$("#topic_title").autocomplete({

source: function(request, response){

$.ajax({

url: 'ajax.php',

datatype: 'json',

data: {

term: request.term,

cod: $('#buscaOperacao').val(),

cod2: $('#buscaTipo').val()

},

success: function(data) {

response($.map(data, function(item){

return {

label: item.label,

value: item.value

}

}))

}

})

},

minLength: 2,

select: function(event, ui){},

html: true,

open: function(event, ui){}

});

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.