Ir para conteúdo

POWERED BY:

Arquivado

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

DinhOZinhO

[Resolvido] IE não carrega dados, qualquer outro browser carrega

Recommended Posts

Tenho o seguinte código

 

$("select[name=estado]").change(function(){
		$("select[name=cidade]").html("<option value=0>Carregando...</option>");

		$.post("'.$url->to_select_cidades_estados().'",
		{estado:$(this).val(),_token:"'.REQUEST_TOKEN.'",_method:"post"},


		function(valor){
			$("select[name=cidade]").html(valor);
		}


		)
	})

 

e no PHP

 

foreach($sql as $dados){
      echo '<option value="'.$dados['id_cidade'].'">'.$dados['nome_cidade'].'</option>';
   }

 

firefox, chrome, safari, opera carrega.. menos no internet explorer.. mostra como se estivesse carregado, mas não exibe nenhuma informação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa forma

 

select.html() é problemática.

Faça com jSON:

 

http://wbruno.com.br/2009/10/06/combos-dependentes-ajax-jquery/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz assim e também deu no mesmo resultado..

 

$(document).ready(function(){
			        $('#estado').change(function(){
			            $('#cidade').load('<?=$url->to_select_cidades_estados();?>?estado='+$('#estado').val() );

			        });
			    });

 

php o mesmo.. :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso ai não tem nada a ver com oq eu mostrei.

 

leia o link e faça daquela forma lá, com o json.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, agradeco a ajuda, tentei de diversas maneiras seguir o que você me passou, o segundo combo não carrega nada, mas o interessante, é que quando eu debudo acessando diretamente, aparecem os dados no html

 

[{"nome_cidade":"nome da cidade","id_cidade":"id da cidade"}]

 

Segue o código

 

 

HTML+JS

 

<form action="" method="post">  
<label for="estado">Estado: </label>
<select id="estado" name="estado">
	<option value="">Selecione um estado</option>
	<?php
		foreach($sql as $dados){
			echo '<option value="'.$dados['id_estado'].'">'.$dados['nome_estado'].'</option>';
	}?>
</select>

<label for="cidade">Cidade: </label>
<select id="cidade" name="cidade">
	<option value="0">Selecione um estado primeiro</option>
</select>
</form>

<script type="text/javascript">
$(document).ready(function(){
	$("select[name='estado']").change(function(){
	var estado = $(this).val();

		$.getJSON(
			'<?=$url->to_select_cidades_estados();?>',
			{estado: estado,_token:"<?=REQUEST_TOKEN;?>",_method:"get" },

			function(data){
				var option = new Array();
				resetaCombo('cidade');
				$.each(data, function(i,obj){
					option[i] = document.createElement('option');
					$(option[i]).attr({value:obj.id_cidade});
					$(option[i]).append(obj.nome_cidade );
					$("select[name='cidade']").append( option[i]);
			});
		});
	});
});	

function resetaCombo(el){
	$("select[name='"+el+"']").empty();
	var option = document.createElement('option');					
	$( option ).attr( {value : '0'} );
	$( option ).append( 'Escolha' );
	$("select[name='"+el+"']").append( option );
}
</script>

 

PHP

 

foreach($sql as $dados){
    $json[] = Array('nome_cidade'=> utf8_encode( $dados['nome_cidade'] ), 'id_cidade'=> $dados['id_cidade']);
   }
echo json_encode($json);

 

Já tentei diversas maneiras, mas o resultado sempre é o mesmo, retorna no html, mas não aparece no select.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, resolvi. Dentro do PHP, havia uma linha em javascript e esta retornava para o html, acredito que por isso não estava aparecendo.

 

meu problema agora é com o jquery.ui.selectmenu que ao carregar o segundo combo, só aparece os dados quando eu escolho outra opção rsrsrs, mas isso vou ver o que faço aqui.

 

obrigado

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.