Eu tenho uma pagina na qual carrega um dropbox com os países cadastrados na base.
Preciso que quando selecionar um pais, ele busca na base quais os estados presentes para esse país.
Já olhei, reolhei e nao consigo achar onde coloquei errado.
Vejam só:
No Head Tenho:
<script type="text/javascript"> function BuscaEstados() { var idPais = document.getElementsByName("paises")[0].value; var httpxml; if (window.XMLHttpRequest) { httpxml = new XMLHttpRequest(); } else { httpxml = new ActiveXObject("Microsoft.XMLHTTP"); } httpxml.onreadystatechange = function() { if (httpxml.readyState == 4 && httpxml.status == 200) { document.getElementsByName("estados")[0].value = httpxml.responseText; } } httpxml.open("GET","buscaEstado.php?idPais=" + idPais,true); httpxml.send(); } </script>
E no Body:
<select name="paises" id="paises" onChange="BuscaEstados();"> <option value="0" selected></option> <?php require_once("admin/conexao.php"); $sql = "SELECT ID,nmPais FROM tbPais ORDER BY nmPais ASC"; $query = mysql_query( $sql )or die; while( $dados = mysql_fetch_assoc( $query ) ) { echo '<option value="'.$dados['ID'].'">'.$dados['nmPais'].'</option>'; } ?> </select> <select name="estados" id="estados"></select>
No Arquivo buscaEstado.php tenho:
<? include ("admin/conexao.php"); $idPais = $_GET["idPais"]; $sql = "SELECT PAI.ID, PAI.nmPais FROM tbPais PAI LEFT JOIN tbEstados EST ON EST.idPais = PAI.ID WHERE PAI.ID = '$idPais' "; $sql2 = mysql_query($sql); while($x = mysql_fetch_array($sql2)) { $ID = $x['ID']; $nomePais = $x['nmPais']; echo '<option value="'.$ID.'">'.$nomePais.'</option>; } ?>
Já achei um erro... estava faltando ' no finzinho e também eu estava trazendo o nome do país ao invés do nome do estado. Porém, ainda continua não populando a dropbox estados.