Ir para conteúdo

POWERED BY:

Arquivado

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

Fagner

populando listmenu de acordo com estado.

Recommended Posts

Bom dia a todos.tenho um list menu com todos os estadosao selecionar, usando onchange() passo o valor para via ajax para meu php que trará todas cidades ref aquele estado,no firefox esta perfeito, no ie nao da certo!teriam alguma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo lah vai o codigo:

 

List Menu que enviara o ano para a consulta.

<select name="ano" id="ano" onchange="EventosPorPeriodo(this.value);">		<option value="">--</option>		<option value="2007">2007</option></select>

funcao em ajax

function EventosPorPeriodo(ano){	var loading = "Carregando";	var div_itens = document.getElementById("evento");	div_itens.innerHTML = loading;	if(xmlhttp){		xmlhttp.open("POST", "_ajax.php", true);		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");		var exibi = "ano="+ano;		xmlhttp.send(exibi);		xmlhttp.onreadystatechange=function(){		if (xmlhttp.readyState==4){				var texto=xmlhttp.responseText;				texto=texto.replace(/\+/g," ");				texto=unescape(texto);				div_itens.innerHTML = texto;			}		}	}}

_ajax.php

$query = "SELECT * FROM eventos WHERE ano >= '".$_POST["ano"]."'";		 $sql = mysql_query($query);		 $retorno = "<option>Selecione um evento da lista</option>";		 while($res = mysql_fetch_array($sql)){			$retorno .= "<option value='".$res["codigo"]."'>".ucwords(strtolower($res["evento"]))."</option>";		 }  echo urlencode($retorno);

List Menu que irá ser populado de acordo com o ano selecionado!

<select name="cv_evento" id="evento">	  <option>Selecione um periodo</option>	</select>

 

Espero que esteja de facil entendimento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso aqui:

div_itens.innerHTML = loading;

deveria ser assim:

div_itens.innerHTML = 'loading';

 

e aqui:

xmlhttp.open("POST", "_ajax.php", true);

deveria ser assim:

xmlhttp.open("POST", "_ajax.php", false);

 

Qualquer coisa é só postar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, mesmo alterando conforme disse o CHainda nao deu certo!no firefox continua funcionando mas no IE nada!Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, mesmo alterando conforme disse o CHainda nao deu certo!e no firefox parou de funfar tb qdo troquei true por falseAbraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso aqui

var texto=xmlhttp.responseText; texto=texto.replace(/\+/g," "); texto=unescape(texto); div_itens.innerHTML = texto;

Ficará

var texto=xmlhttp.responseText; texto=texto.replace(/\+/g," "); texto=unescape(texto); select_innerHTML(div_itens,texto); //div_itens.innerHTML = texto;

Compartilhar este post


Link para o post
Compartilhar em outros sites

acusou que select_innerHTML() nao é uma função.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao micox, olhei sua funçao achei muito complexa, iria resolver meu problema porémeu continuaria sem entender!mas se isso vai me trazer resultado vou usa-la, ai tento entende-la!

Compartilhar este post


Link para o post
Compartilhar em outros sites

micox,valeu sua funçao resolveu meu problema,agora é estuda-la para entende-la!

Compartilhar este post


Link para o post
Compartilhar em outros sites

micoxficou bom, mas mais uma duvida, é lento pra trazer os dados??pois da forma que estava antes qdo funcionava somente no firefox estava populando rapido agora esta bem mais lento.so uma pergunta nao fique chateado![]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

É mais lento que um innerHTML normal, mas fazer o que né? Isso é bug nativo do IE, a única forma de resolver é assim.

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.