Help to pick up ajax input with Laravel

Asked

Viewed 105 times

1

I need to take the input city of the form below, use in $input['city'] but does not take. Uf $input['Uf'] takes, below the code.

<select name="uf" id="uf" class="form-control">
<option value="">-- Escolha o Estado --</option>    

<select name="city" id="city" class="form-control" data-bind="value: params.city" style="display:none;"></select>

<script> var selectCidades</script>
<script type="text/javascript">	
	//json � uma variavel 'global'
	var json;
	
	
	//Vamos fazer um Ajax s� de zoas
	ajax = new XMLHttpRequest();		
	//Pega uma um array de estados com array de cidades Cortesia do gitzeiro: @letanure
	ajax.open('GET', 'https://gist.githubusercontent.com/letanure/3012978/raw/36fc21d9e2fc45c078e0e0e07cce3c81965db8f9/estados-cidades.json', true);
	ajax.send();
	
	ajax.onreadystatechange = function() {
		if(ajax.readyState == 4 && ajax.status == 200) {
		
			//Parsea o text para JSON
			json = JSON.parse(ajax.responseText);
		
			//Percorre todos os estados
			for(i in json.estados){
				var estado = json.estados[i];
				
				//Cria a a cidade na tag 'Option'
				var option = document.createElement("option");
				option.text = estado.nome;
				option.value = estado.sigla;
				
				//Insere no Select(uf) as options criadas
				var selectUf = document.getElementById("uf");
				selectUf.appendChild(option);
			}
		}
	}
	
	//Monitra o evento Change, e assim que ocorrer altera��o, exibe as cidades do mesmo (aproveitando a mesma requisi��o (var json))
	document.getElementById('uf').addEventListener('change', function() {	
		//Pega o Estado que o cara selecionou... Ex: 'SP'
		var ufSelecionado = this.value;
		
		//Deixa o Select de Cidades Facil para manipular
		var selectCidades = document.getElementById("city");
		
		//Remove todas as cidades (caso esteja trocando)
		while (selectCidades.firstChild) {
			selectCidades.removeChild(selectCidades.firstChild);
		}
		
		//Percorre todo o Loop de estados
		for(i in json.estados){
			var estado = json.estados[i];			
			//Caso a sigla seja a mesma selecionada
			if(estado.sigla == ufSelecionado){
			
				for(x in estado.cidades){
					var cidade = estado.cidades[x];
					
					//Cria a a cidade na tag 'Option'
					var option = document.createElement("option");
					option.text = cidade;
					option.value = x;
					
					//Insere no Select a tag criada			
					selectCidades.appendChild(option);
					
					//Retira a condi��o de 'Esconder'
					selectCidades.style.display = null;
				}
				
				//Break loop (Improve performace?)
				return false;
			}
		}
	});
</script>

  • Which part of the code is not working?

  • everything works, I choose and show the cities, what I’m not able to do is take the name of the city. $input['city'] only takes the id.

  • But that’s not in the question code.

  • The $input['city'] is taking value?

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.