gremio10 14 Denunciar post Postado Janeiro 25, 2011 Fala galera, seguinte, to com um problemão .... meu ajax está sempre caindo em ERROR... <h4>Estado :</h4> <select name="estado" id="estado"/> <?php $sql = "SELECT * FROM estados"; $conn->query($sql); $all = $conn->fetchAll(); foreach($all as $reg){ ?> <option value="<?php echo $reg->id ?>"><?php echo $reg->uf ?></option> <?php } ?> </select> <select name="cidade" id="cidade"/> </select> <div id="load"></div> <script> $(document).ready(function(){ $("#estado").change(function(){ var params = $(this).serialize(); alert(params); $.ajax({ type: "POST", url: "cidade.php", data: params, beforeSend: function(){ $("#load").html("Carregando..."); }, success: function(e){ $("#load").html("Ok."); $("#cidade").html(e); }, error: function(e){ $("#cidade").html(e); } }) return false; }); }); </script> e esse é o codigo do cidade.php <?php require("../class.conexao.php"); $conn = new Conexao; $id = $_POST["estado"]; $sql = "SELECT * FROM cidades WHERE estado = '{$id}'"; $conn->query($sql); $html = ""; if($conn->num() > 0){ $html .= "<option value='{$reg->id}'>{$reg->nome}</option>"; }else{ $html .= "<option value='0'>Não foi encontrado</option>"; } echo $html; ?> Obrigado... Compartilhar este post Link para o post Compartilhar em outros sites
hypinotic 0 Denunciar post Postado Janeiro 25, 2011 qual o erro que retorna?? tenta dar um alert(e); dentro do error e posta aqui o que aparecer. Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Janeiro 25, 2011 Opa tudo bem , ele me retornou : [objectXMLHttpRequest] o que seria isso ? Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Janeiro 25, 2011 voce quer colocar os options no select? tente assim .. <script> $(document).ready(function(){ $("#estado").change(function(){ var params = $(this).serialize(); alert(params); $.ajax({ type: "POST", url: "cidade.php", data: params, beforeSend: function(){ $("#load").html("Carregando..."); }, success: function(e){ $("#load").html("Ok."); $("select#cidade").html(e); }, error: function(e){ $("#cidade").html(e); // ???? você imprime o erro dentro select? } }) return false; }); }); </script> Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Janeiro 25, 2011 Cara, ele continua dando o mesmo erro, eu tinha me enganado no error... agora dou apenas um alert, ou até depois eu colocarei uma mensagem de erro. Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Janeiro 25, 2011 cara .. eu não sei se tem como imprimir opção dentro do select não .. isso você teria que fazer com um response text .. imprimir as options la na pagina cidade ... tpws . function xmlhttp() { if (window.XMLHttpRequest) { return new XMLHttpRequest(); } var versao = ['Microsoft.XMLHttp', 'Msxml2.XMLHttp', 'Msxml2.XMLHttp.6.0', 'Msxml2.XMLHttp.5.0', 'Msxml2.XMLHttp.4.0', 'Msxml2.XMLHttp.3.0','Msxml2.DOMdocument.3.0']; for (var i = 0; i < versao.length; i++) { try { return new ActiveXObject(versao[i]); } catch(e) { alert("Seu navegador não possui recursos para o uso do AJAX!"); } } return null; } function teste(){ ajax = xmlhttp(); if (ajax) { ajax.open('get','pagina+parametros, true); ajax.onreadystatechange = conteudo; ajax.send(null); } } function conteudo() { if (ajax.readyState==4) { if (ajax.status==200) { document.getElementById('onde botar o conteudo').innerHTML = ajax.responseText; } } } ai você chama a função por evento onchange .. Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Janeiro 25, 2011 Cara, eu quero fazer em jQuery, se fizer assim, estarei colocando o JS puro e mais a biblioteca, certo ? queria apenas jQuery Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 25, 2011 feio e incorreto isso: $("select#cidade").html(e); veja, uma forma mais bonita: http://forum.imasters.com.br/index.php?/topic/365795-combos-dependentes-ajax-jquery/ Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Janeiro 25, 2011 William, você saberia me dizer o que estou fazendo de errado no meu código ?! e se é possivel construir um select desse modo que fiz ? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 25, 2011 tô com um pouco de preguiça, pra te dizer oque tem 'de errado', precisaria debugar o código inteiro. primeiro ponto, fazer o .html() está completamente errado. veja que no meu código, eu crio cada option (createElement), e jogo no outro select com append fora isso, responda: -> o arquivo cidades.php está no mesmo nivel do script que está rodando ? (o formulario) -> troque: $id = $_POST["estado"]; por $_GET, acesse diretamente: localhost/cidades.php?estado=2 e veja oque aparece na tela. Erros php ? ou os <options>. -> pra quê o return false no onchange ? -> var params = $(this).serialize(); não faz sentido.. você só precisa enviar o value do select correto: var params = $( this ).val(); .. Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Janeiro 26, 2011 William, utilizei o seu código , só que oi problema é que quando fui debugar ele, ele cai apenas no primeiro alert, o segundo da function(data) ele não aparece.... o que pode ser ? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 26, 2011 algum erro seu ^_^ já usei esse 'meu código' diversas vezes, e outras pessoas também. Aperte Ctrl + Shif + J no Firefox, veja o console de erros, e corrija. Compartilhar este post Link para o post Compartilhar em outros sites