Não consigo implementar uma rotina de ajax para selecionar um select (Setor) a partir de outro select (Departamento). Já fiz várias tentativas com os códigos postados aqui, mas não consegui entender como funciona direito. Deve ser alguma coisa que ainda não detectei, mas preciso disso com urgência e bate aquele desespero - aí é que não vai mesmo. Estou postando o código abaixo, me ajudem por favor.
Pergunta
sergio.lima
Prezados Colegas,
Não consigo implementar uma rotina de ajax para selecionar um select (Setor) a partir de outro select (Departamento). Já fiz várias tentativas com os códigos postados aqui, mas não consegui entender como funciona direito. Deve ser alguma coisa que ainda não detectei, mas preciso disso com urgência e bate aquele desespero - aí é que não vai mesmo. Estou postando o código abaixo, me ajudem por favor.
formulario.php
<html> <head> <title>Formulario</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> function RetornoAjax(id, url, container) { var xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Este browser não suporta HTTP Request") return } var url=url; url=url+"?id="+id; url=url+"&sid="+Math.random(); xmlHttp.onreadystatechange=function() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { document.getElementById(container).innerHTML=xmlHttp.responseText } } xmlHttp.open("GET",url,true) xmlHttp.send(null) } function GetXmlHttpObject() { var objXMLHttp=null if (window.XMLHttpRequest) objXMLHttp=new XMLHttpRequest() else if (window.ActiveXObject) objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP") return objXMLHttp } </script> </head> <body bgcolor="#EBEDED" text="#000000"> <form> <table width="40%" border="2" cellspacing="0" cellpadding="0" align="center"> <tr bgcolor="#006699"> <td colspan="4"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><font color="#FFFFFF">Lotação do Servidor</font></b></font></div></td> </tr> <?PHP include_once "conexao.php"; // Lotação Departamento $sql = "SELECT DISTINCT sg_departamento FROM tb_lotacao order by sg_departamento"; if ($conexao->query($sql)) { echo "<tr>"; echo " <td> <div align='right'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>Departamento : </font></div></td>"; echo " <td colspan='2'> <font size='2' face='Verdana, Arial, Helvetica, sans-serif'>"; echo " <select name='SG_DEPARTAMENTO' id='SG_DEPARTAMENTO' onchange='RetornoAjax(this.value, 'busca_1.php', 'SG_DEPARTAMENTO')'>"; echo " </select>"; echo " </font></td>"; echo "</tr>"; } // Lotação Setor $sql = "SELECT DISTINCT sg_setor FROM tb_lotacao where sg_departamento='SG_DEPARTAMENTO' order by sg_setor"; if ($conexao->query($sql)) { echo "<tr>"; echo " <td> <div align='right'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>* Setor : </font></div></td>"; echo " <td colspan='2'> <font size='2' face='Verdana, Arial, Helvetica, sans-serif'>"; echo " <select name='SG_SETOR' id='SG_SETOR' onchange='RetornoAjax(this.value, 'busca_2.php', 'SG_SETOR')'>"; echo " </select>"; echo " </font></td>"; echo "</tr>"; } ?> </table> </form> </body> </html>busca_1.php<?PHP $rs = $conexao->query($sql)->fetchAll(PDO::FETCH_ASSOC); $linhas = count($rs); for ($x=0; $x < $linhas; $x++) { echo '<option value="'.$rs[$x]['sg_departamento'].'">'.trim($rs[$x]['nome_departamento']).'</option>'; } ?>busca_2.php<?PHP $rs = $conexao->query($sql)->fetchAll(PDO::FETCH_ASSOC); $linhas = count($rs); for ($x=0; $x < $linhas; $x++) { echo '<option value="'.$rs[$x]['sg_setor'].'">'.trim($rs[$x]['nome_setor']).'</option>'; } ?>Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.