Ir para conteúdo

POWERED BY:

Arquivado

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

Kakaroto1309

achaar o erro!

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu consegui fazer retornar o valor do HTML DOM para a página que chamou ele porém, agora preciso incluir o código -- echo '<option value="'.$ID.'">'.$nomeEstado.'</option> -- na página inicial. Alguem sabe?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o Console de Erros do seu navegador. Existem as ferramentas de Desenvolvedor (CTRL+i no Chrome). Tudo isso ajuda a debuggar Javascript.

 

Também é possível usar console.log pra escrever no console javascript. Escreva lá o retorno de sua resuisição Ajax.

 

Tudo isso vai ajudar a encontrar os problemas

 

 

Duas observações:

 

1. Estamos no Século XXI. Você pode usar jQuery, AngularJS e outras ferramentas pra ajudar.

 

2. funções mysql_* estão obsoletas desde o PHP 5.5 e serão removidas do PHP em breve. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca:

document.getElementsByName("estados")[0].value = httpxml.responseText;
por

document.getElementsByName("estados")[0].innerHTML = httpxml.responseText;
E não duplique sua dúvida pelo fórum. Vou apagar o outro tópico.

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.