Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, estou iniciando em ajax e estou com um problema em preencher um select, já procurei em vários lugares, mas não achei nada sobre o meu problema, apesar de esse assunto comum, não tive sucesso, já revisei o meu codigo varias vezes encontrei alguns erros, mas mesmo após de resolve-los o problema continua.
Resumindo o erro, o select não carrega
Esse é o código onde está o select:
CODE
<html><head>
<?php
include("includes/title.php");
?>
<script type="text/javascript">
try{
xmlhttp = new XMLHttpRequest();
}catch(ee){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
xmlhttp = false;
}
}
}
function doBusca(tuf){
//limpa o select
var c=document.getElementById("cidade");
while(c.options.length>0)c.options[0]=null;
c.options[0]=new Option(" -- Aguarde ... -- "," -- Aguarde ... -- ");
//Monta a url com a uf
xmlhttp.open("GET", "ajax.php?id="+tuf,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4){
//Transforma a lista de cidades JSON em Javascript
var json=eval("("+xmlhttp.responseText+")");
//limpando o select da icdade
var obj = document.getElementById('cidade');
while(obj.firstChild){
obj.removeChild(obj.firstChild);
}
//popula o select com a lista de cidades obtida
var i=0;
for(i=0;i<json.cidade.length;i++){
//criando o option que ira preencher o select
var option = document.createElement("option");
//atribuindo um valor a propriedade value do option
option.setAttribute("value",json.cidade*.id);*
//atribuindo o texto que vai aparecer no option
* option.appendChild(document.createTextNode(json.cidade**.nome));*
* document.getElementById(document.createTextNode(json.cidade**.nome));*
//atribuindo o option criado ao select cidade
document.getElementById("cidade").appendChild(option);
}
}
}
xmlhttp.send(null)
}
*</script>*
*</head>*
*<body bgcolor="#000000">*
* <div class="apresentacao">*
* <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="*[http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"](http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0)* WIDTH="800" HEIGHT="580" id="index" ALIGN="">*
* <param NAME="movie" VALUE="flash/index.swf" />*
* <param NAME="quality" VALUE="high" />*
* <param NAME="bgcolor" VALUE="#000000" />*
* <param name="wmode" value="transparent" />*
* <EMBED src="flash/index.swf" wmode="transparent" quality=high bgcolor=#000000 WIDTH="800" HEIGHT="580" NAME="index" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="*[http://www.macromedia.com/go/getflashplayer">](http://www.macromedia.com/go/getflashplayer%22)
* </object>*
* </div>*
<!-- Idioma -->
* <div class="idioma">*
* <span id="eua"><img src="img/gif/eua.gif"></span>*
* <span id="bra"><img src="img/gif/bra.gif"></span>*
* <span id="esp"><img src="img/gif/esp.gif"></span>*
* </div>*
<!-- Entrar -->
<div id="entrar" class="entrar_est">Entrar</div>
<!-- Cidade -->
* <div id="localizacao" class="localizacao">*
* <form>*
* <label for="id">*
* UF:<select name="id" id="id" onchange="doBusca(this.options[this.selectedIndex].value)">*
* <option value="--">--</option>*
* <option value="1">AC</option>*
* <option value="2">AL</option>*
* <option value="4">AM</option>*
* <option value="3">AP</option>*
* <option value="5">BA</option>*
* <option value="6">CE</option>*
* <option value="7">DF</option>*
* <option value="8">ES</option>*
* <option value="9">GO</option>*
* <option value="10">MA</option>*
* <option value="13">MG</option>*
* <option value="12">MS</option>*
* <option value="11">MT</option>*
* <option value="14">PA</option>*
* <option value="15">PB</option>*
* <option value="17">PE</option>*
* <option value="18">PI</option>*
* <option value="16">PR</option>*
* <option value="19">RJ</option>*
* <option value="20">RN</option>*
* <option value="22">RO</option>*
* <option value="23">RR</option>*
* <option value="21">RS</option>*
* <option value="24">SC</option>*
* <option value="26">SE</option>*
* <option value="25">SP</option>*
* <option value="27">TO</option>*
* </select>*
* </label>*
* <label for="cidade">*
* Cidade:<select name="cidade" id="cidade" onChange="alert(this.value);"></select>*
* </label>*
* </form>*
* </div>*
*</body>*
*</html>*
E esse é o código onde recupero os nomes das cidades:
CODE
*<?php** //para fazer com que seja entendido todos os caracteres*
header ( " Content - Type : text / html ; charset =iso -8859 -1 " ) ;
//chamando a pagina de conexao com o banco de dados
include("conex.php");
//criando a instrução de busca
* $instrucao = "SELECT id_cidade, cidade FROM cidades WHERE id_estado = ". $_GET['id'] ." ORDER BY cidade ASC;";*
//execitando a instrução
$query = mysql_query($instrucao) or die ("Erro");
//inicando a estrutura do json
//a variavel cidade irá receber uma array chamada cidade, com os varias linhas e duas colunas, onde o indice das colunas são respectivamente, id e nome
//cada coluna é separada por uma virgula. Para atribuir um valor ao indice, é necessário por o nome do indice primeiro e depois o conteudo, separados por ":"(dois pontos)
//caso queira por mais de uma coluna deve-se usar virgula.
$cidade = "{'cidade':[";
while ($linha = mysql_fetch_assoc($query)){
$qtd_linha +=1;
$cidade .= "{'id':'". $linha['id_cidade'] ."','nome':'". $linha['cidade'] ."'}";
//verificando se já é o ultimo registro
if ($qtd_linha < mysql_num_rows($query)){
//se não for o ultimo registro, coloca-se uma virgula
$cidade .= ",";
}else{
$cidade .= "]}";
}
}
* echo $cidade;*
*?>*
Infelizmente, o proprietário do site ainda não quer colocar o site no ar, então não terei como postar o link.
Agradeço todo tipo de ajuda.
Carregando comentários...