Ir para conteúdo

POWERED BY:

Arquivado

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

Nelson Dutra

[Resolvido] Combobox com JQuery

Recommended Posts

Boa tarde, estou com um problema em um combobox em que o usuário deve selecionar o estado e ele carrega no campo ao lado as cidades daquele estado, usei PHP e JQuery e um DB em MySQL. O problema ocorre no IE, quando o estado é selecionado nao é carregado nada no campo cidade. Mas funciona em outros navegadores.

 

Código:

 

cadastro.php

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<script src="jquery-1.3.2.min.js" type="text/javascript"></script>

<script type="text/javascript">

$(document).ready(function(){

$('#estados').change(function(){

$('#cidades').load('cidades.php?estado='+$('#estados').val() );

 

});

});

</script>

</head>

<body>

<form action="cadastro2.php" method="post">

<label>Selecione seu estado</label>

<select name="estados" id="estados">

<?php

 

header("Content-Type: text/html; charset=ISO-8859-1", true);

 

include('scripts/cadastro/conf.php');

 

$result = mysql_query("select * from tb_estados");

 

while($row = mysql_fetch_array($result) ){

header("Content-Type: text/html; charset=ISO-8859-1",true);

echo "<option value='".$row['id']."'>".$row['nome']."</option>";

 

}

 

?>

</select>

<label>Cidade:</label>

<select name="cidades" id="cidades">

<option value="0">Escolha um estado</option>

</select>

<input type="submit" class="continuar" value="Continuar" name="continuar" />

</form>

</body>

</html>

 

cidades.php

 

<?php

header("Content-Type: text/html; charset=ISO-8859-1",true);

 

$idestado = $_GET['estado'];

 

include('scripts/cadastro/conf.php');

 

$result = mysql_query("SELECT * FROM tb_cidades WHERE estado = ".$idestado);

 

while($row = mysql_fetch_array($result) ){

echo "<option value='".$row['nome']."'>".$row['nome']."</option>";

 

}

 

?>

 

Alguém sabe o que posso ultilizar para funcionar no IE ou alguma coisa alteração que precise fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente está dando algum erro no js, o IE costuma parar quando acha algum erro

 

Verifique se tem alguma mensagem de erro no rodapé da página, na barra de status.

 

Tem um post que pode te ajudar,

Link não autorizado removido

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes de tudo atualiza a lib do jQuery, essa ta muito antiga.

 

coloque a mais atual:

 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

 

Analisei seu code e não vi nada demais, eu fiz um que segue a mesma base do seu, veja aqui

 

http://patriqueandre.com.br/previsao/

 

Mais antes de tudo atualize a lib, apague o cache e teste, depois veja se resolveu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O "problema", é essa forma de fazer o insert do html, usando a função .load()

 

O "mais correto" e bonito, é ir formando os options, dessa forma aqui:

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpem a demora, pois estava sem internet, mas consegui ultilizando da forma inicial que postei, era um problema na meta tag que setava o charset, coloquei ela a meta tag no head usando o padrão ISO-8958-1, no IE ele subistituia os caracteres especiais por simbolos e envia na requisição o simbolo, oque acabava fazendo o mysql query do php nao encontrar nada. Obrigado e fica a dica para verificarem isto.

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.