eu_Nana 0 Denunciar post Postado Fevereiro 19, 2010 Veja: form.oficinas.php <?php require "include/conexao.php"; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Formulário</title> <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("idprofessores") 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", "oficinas.ajax.php?idoficinas="+tuf,true); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4){ //limpa o select var c=document.getElementById("idprofessores") while(c.options.length>0)c.options[0]=null //Transforma a lista de cidades JSON em Javascript var idprofessores= eval((xmlhttp.responseText)) //popula o select com a lista de cidades obtida for(var i=0;i<idprofessores.length;i++){ idprofessores[i]=unescape(idprofessores[i]) c.options[c.options.length]=new Option(idprofessores[i],idprofessores[i+1]) i++; } } } xmlhttp.send(null) } </script> <link href="css/estilo.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="conteudo"> <form action="insere.php" method="post"> <table width="100%" border="0"> <tr> <td colspan="5"> </td> </tr> <tr> <td colspan="5" align="center"> Selecione seu nome: <select name="nome" id="nome"> <option value="Selecione">Selecione</option> <? $cok = $_POST['ok']; /************************************************************************************* Consulta do idparticipantes e nome dos participantes existentes e mostra no select **************************************************************************************/ $sql_nomes= "SELECT idparticipantes, nome from participantes where ok='1' order by nome asc"; $resultado = mysql_query($sql_nomes) or die (mysql_error()); while($linha=mysql_fetch_array($resultado)) { echo("<option>" .$linha["nome"]."</option>"); } ?> </select> </td> </tr> <select name="idoficinas" id="idoficinas" onchange="doBusca(this.options[this.selectedIndex].value)"> <option value="Selecione">Selecione</option> <? /*************************************************************************************** Consulta do idparticipantes e nome dos participantes existentes e mostrar no select ****************************************************************************************/ $sql= "SELECT idoficinas, titulo from oficinas order by titulo asc"; $res = mysql_query($sql) or die (mysql_error()); while($row=mysql_fetch_array($res)) { //echo("<option>" .$row["titulo"]."</option>"); //echo("<option value='".$row["idoficinas"]."'>" .$row["titulo"]."</option>"); echo '<option value="'.$row['idoficinas'].'">'.$row['titulo'].'</option>'; } ?> </select> </td> <td width="51%"> <span class="carregando">Aguarde, carregando...</span> <select name="idprofessores" id="idprofessores" > <option value="">Escolha um Professor</option> </select> <td width="12%"> </td> <td width="10%"> </td> </tr> <tr> <td colspan="2"> </td> <td> </td> <td colspan="2"><input type="submit" name="button" id="button" value="Enviar" /></td> </form> </div> </body> </html> oficinas.ajax.php <?php header( 'Cache-Control: no-cache' ); //header('Content-Type: application/json; charset="utf-8"', true); $con = mysql_connect( 'localhost', 'root', '' ) ; mysql_select_db( 'teste', $con ); $idoficinas = $_GET['idoficinas'] ; $oficinas = array(); $sql_oficinas = "SELECT idprofessores, nome FROM professores WHERE oficinas_idoficinas=$idoficinas ORDER BY nome"; $res = mysql_query( $sql_oficinas ); while($arr = mysql_fetch_array($res)) { $nome = $arr['nome']; } echo $nome; ?> Eu tentei fazer o seguinte: como no arquivo oficinas.ajax.php no while ele exibe o nome....pensei em passar esse valor lá no script onde esta "idprofessores", porém qnd tento fazer isso ele se confunde com a variavel do select q exibe os nomes dos alunos q esta no form acima.....então resolvi mudar o nome desse name desse select.....mais tb sem sucesso... Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 19, 2010 Olha Teste aqui no mesmo arquivo com o seu, mas estados e cidades. e funcionou eu só fiz uma mudancinha no <? ?>, coloquei <?php ?>. E no option eu coloquei aspas. Copia e testa rodando internet explorer, e veja se dá algum erro de script. Se nao funcionar, veja se tem algum erro no PHP, as vezes nao aparece na tela, veja pelo código fonte. <?php require "include/conexao.php"; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Formulário</title> <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("idprofessores") 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", "oficinas.ajax.php?idoficinas="+tuf,true); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4){ //limpa o select var c=document.getElementById("idprofessores") while(c.options.length>0)c.options[0]=null //Transforma a lista de cidades JSON em Javascript var idprofessores= eval((xmlhttp.responseText)) //popula o select com a lista de cidades obtida for(var i=0;i<idprofessores.length;i++){ idprofessores[i]=unescape(idprofessores[i]) c.options[c.options.length]=new Option(idprofessores[i],idprofessores[i+1]) i++; } } } xmlhttp.send(null) } </script> <link href="css/estilo.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="conteudo"> <form action="insere.php" method="post"> <table width="100%" border="0"> <tr> <td colspan="5"> </td> </tr> <tr> <td colspan="5" align="center"> Selecione seu nome: <select name="nome" id="nome"> <option value="Selecione">Selecione</option> <?php $cok = $_POST['ok']; /************************************************************************************* Consulta do idparticipantes e nome dos participantes existentes e mostra no select **************************************************************************************/ $sql_nomes= "SELECT idparticipantes, nome from participantes where ok='1' order by nome asc"; $resultado = mysql_query($sql_nomes) or die (mysql_error()); while($linha=mysql_fetch_array($resultado)) { echo("<option>" .$linha["nome"]."</option>"); } ?> </select> </td> </tr> <select name="idoficinas" id="idoficinas" onchange="doBusca(this.options[this.selectedIndex].value)"> <option value="Selecione">Selecione</option> <?php /*************************************************************************************** Consulta do idparticipantes e nome dos participantes existentes e mostrar no select ****************************************************************************************/ $sql= "SELECT idoficinas, titulo from oficinas order by titulo asc"; $res = mysql_query($sql) or die (mysql_error()); while($row=mysql_fetch_array($res)) { //echo("<option>" .$row["titulo"]."</option>"); //echo("<option value='".$row["idoficinas"]."'>" .$row["titulo"]."</option>"); echo "<option value='".$row['idoficinas']."'>".$row['titulo']."</option>"; } ?> </select> </td> <td width="51%"> <span class="carregando">Aguarde, carregando...</span> <select name="idprofessores" id="idprofessores" > <option value="">Escolha um Professor</option> </select> <td width="12%"> </td> <td width="10%"> </td> </tr> <tr> <td colspan="2"> </td> <td> </td> <td colspan="2"><input type="submit" name="button" id="button" value="Enviar" /></td> </form> </div> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 19, 2010 O erro q esta dando é o ";" na linha 39 q se refere a : var c=document.getElementById("idprofessores") Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 19, 2010 Eu seiii mas nao tem nada errado nao sei pq ele ta acusando isso eu testei aqui com tudo igual soh tabelas diferentes tenta limpar seu cache Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 19, 2010 Já limpei...limpei de novo e nada...o erro continua...eu to pirando já....:(/> Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 19, 2010 Muda o nome do id do select de professores para outro nome, e nao esqueça de alterar no script tbm muito estranho oO Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 19, 2010 Olha eu fiz uma alteração no script...na parte onde começa o try.... agora ele não exibe mais o erro ";" e mostra no select a msg de "Aguarde...Carregando" mais só fica nisso....mais antes nem isso fazia.....veja <?php require "include/conexao.php"; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Formulário</title> <script type="text/javascript" src="../js/ajax.js"></script> <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("idprofessores") 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", "oficinas.ajax.php?idoficinas="+tuf,true); xmlHttp.onreadystatechange=function() { if (xmlHttp.readyState==4) { //limpa o select var c=document.getElementById("idprofessores") while(c.options.length>0)c.options[0]=null //Transforma a lista de cidades JSON em Javascript var idprofessores= eval((xmlHttp.responseText)) //popula o select com a lista de cidades obtida for(var i=0;i<idprofessores.length;i++){ idprofessores[i]=unescape(idprofessores[i]) c.options[c.options.length]=new Option(idprofessores[i],idprofessores[i+1]) i++; } } } return xmlHttp; } </script> Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 19, 2010 Haa entendii Então o erro deve ser na parte de PHP; para saber entra diretamente na página assim passando como parametro um id que você sabe que tem no banco. oficinas.ajax.php?idoficinas=1 veja se dá erro. Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 19, 2010 Não dá erro ..ele exibe pagina em branco qnd tiro o "echo $nome;" while($arr = mysql_fetch_array($res)) { $nome = $arr['nome']; } echo $nome;... e exibe o nome do professor qnd mantenho esse echo... Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 19, 2010 então está certo o php o problema é no script. alguma coisa... que eu nao vejo aonde.. preciso olhar mais mas mantenha o echo! Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 19, 2010 então está certo o php o problema é no script. alguma coisa... que eu nao vejo aonde.. preciso olhar mais mas mantenha o echo! lá no script não tem como dar um print..para ver oq esta chegando em idprofessores e em idoficinas na variavel tuf....? Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 19, 2010 Tem, coloca antes da linha de chamar a página alert(document.getElementById('idprofessores')); alert(tuf); Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 22, 2010 Tem, coloca antes da linha de chamar a página alert(document.getElementById('idprofessores')); alert(tuf); olá....esta correto isso, em idprofessores ele armazena isso: [object HTMLSelectElement] e em tuf: armazena o id correto.... Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 22, 2010 Olha Eu testei o seu novamente, só que com outras tabelas, funcionou. Teste no IE e no Mozilla <?php require "include/conexao.php"; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Formulário</title> <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("idprofessores"); 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", "oficinas.ajax.php?idoficinas="+tuf,true); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4){ //limpa o select var c=document.getElementById("idprofessores"); while(c.options.length>0)c.options[0]=null //Transforma a lista de cidades JSON em Javascript var idprofessores= eval((xmlhttp.responseText)); //popula o select com a lista de cidades obtida for(var i=0;i<idprofessores.length;i++){ idprofessores[i]=unescape(idprofessores[i]); c.options[c.options.length]=new Option(idprofessores[i],idprofessores[i+1]); i++; } } } xmlhttp.send(null); } </script> <link href="css/estilo.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="conteudo"> <form action="insere.php" method="post"> <table width="100%" border="0"> <tr> <td colspan="5"> </td> </tr> <tr> <td colspan="5" align="center"> Selecione seu nome: <select name="nome" id="nome"> <option value="Selecione">Selecione</option> <option value="Selecione">Selecione</option> <?php $cok = $_POST['ok']; /************************************************************************************* Consulta do idparticipantes e nome dos participantes existentes e mostra no select **************************************************************************************/ $sql_nomes= "SELECT idparticipantes, nome from participantes where ok='1' order by nome asc"; $resultado = mysql_query($sql_nomes) or die (mysql_error()); while($linha=mysql_fetch_array($resultado)) { echo("<option>" .$linha["nome"]."</option>"); } ?> </select> </td> </tr> <select name="idoficinas" id="idoficinas" onChange="doBusca(this.options[this.selectedIndex].value)"> <option value="Selecione">Selecione</option> <?php /*************************************************************************************** Consulta do idparticipantes e nome dos participantes existentes e mostrar no select ****************************************************************************************/ $sql= "SELECT idoficinas, titulo from oficinas order by titulo asc"; $res = mysql_query($sql) or die (mysql_error()); while($row=mysql_fetch_array($res)) { //echo("<option>" .$row["titulo"]."</option>"); //echo("<option value='".$row["idoficinas"]."'>" .$row["titulo"]."</option>"); echo "<option value='".$row['idoficinas']."'>".$row['titulo']."</option>"; } ?> </select> </td> <td width="51%"> <span class="carregando">Aguarde, carregando...</span> <select name="idprofessores" id="idprofessores" > <option value="">Escolha um Professor</option> </select> <td width="12%"> </td> <td width="10%"> </td> </tr> <tr> <td colspan="2"> </td> <td> </td> <td colspan="2"><input type="submit" name="button" id="button" value="Enviar" /></td> </form> </div> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Fevereiro 22, 2010 Nana, já experimentou testar em outro navegador? Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 22, 2010 Nana, já experimentou testar em outro navegador? Sim....em todos os navegadores possiveis.....Firefox, IE, Safari, Opera e Chrome....em todos ele pega o ID correto mais não exibe o nome do professor no select....fica só c a msg de carregando.... Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Fevereiro 22, 2010 mas e a parte dos testes por partes??? esqueci de avisar (não sei se precisa) os alertas deveriam aparecer quando você selecionasse um professor Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 22, 2010 mas e a parte dos testes por partes??? esqueci de avisar (não sei se precisa) os alertas deveriam aparecer quando você selecionasse um professor Nao Nao! Pq o Onchange está no select de Oficinas. Ela vai selecionar a oficina primeiro e vai aparecer o professor no outro select. Ainda mais pq os alerts estão antes de chamar a página que vai fazer a pesquisa. Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 22, 2010 mas e a parte dos testes por partes??? esqueci de avisar (não sei se precisa) os alertas deveriam aparecer quando você selecionasse um professor Nao Nao! Pq o Onchange está no select de Oficinas. Ela vai selecionar a oficina primeiro e vai aparecer o professor no outro select. Ainda mais pq os alerts estão antes de chamar a página que vai fazer a pesquisa. Então qnd fiz parte por parte tb testei em todos os navegadores q falei.... Compartilhar este post Link para o post Compartilhar em outros sites