eu_Nana 0 Denunciar post Postado Fevereiro 14, 2010 Olá pessoal, Estou precisando de uma ajuda.....tenho uma tabela no BD com os seguintes campos: idoficinas, titulo e professor. Tenho um form com 8 selects e pego os dados do BD, preciso fazer o seguinte: qnd selecionar o titulo da oficina em um select no outro select deve exibir o nome do professor....eu fiz porém qnd seleciono uma oficina o outro select some.....não sei oq fiz de errado......vejam o código: form.php <form action="insere_oficinas.php" method="post"> <table width="100%" border="0"> <tr> <td colspan="5"> </td> </tr> <tr> <td colspan="5" align="center"> </td> </tr> <tr> <td colspan="2"> </td> <td colspan="3"> </td> </tr> <tr> <td colspan="5"> </td> </tr> <tr> <td colspan="5"> </td> </tr> <tr> <td width="8%">1º -</td> <td width="19%"> <select name="titulo1" id="titulo1"> <option value="Selecione">Selecione</option> <? /*************************************************************************************** Consulta do idparticipantes e nome dos participantes existentes e mostrar no select ****************************************************************************************/ $sql_oficinas= "SELECT idoficinas, titulo from oficinas order by titulo asc"; $res = mysql_query($sql_oficinas) or die (mysql_error()); while($row=mysql_fetch_array($res)) { echo("<option>" .$row["titulo"]."</option>"); } ?> </select> <script src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load('jquery', '1.3'); </script> <script type="text/javascript"> $(function(){ $('#titulo1').change(function(){ if( $(this).val() ) { $('#professor1').hide(); $('.carregando').show(); $.getJSON('oficinas.ajax.php?search=',{titulo1: $(this).val(), ajax: 'true'}, function(j){ var options = '<option value=""></option>'; for (var i = 0; i < j.length; i++) { options += '<option value="' + j[i].professor1 + '">' + j[i].professor + '</option>'; } $('#professor1').html(options).show(); $('.carregando').hide(); }); } else { $('#professor1').html('<option value="">– Escolha um estado –</option>'); } }); }); </script> </td> <td width="51%"> <select name="professor1" id="professor1"> <option value="">Selecione</option> <!--< /******************************************************************* Consulta do idparticipantes e nome dos participantes existentes ********************************************************************/ $sql_oficinas1= "SELECT idoficinas, professor from oficinas order by professor asc"; $res1 = mysql_query($sql_oficinas1) or die (mysql_error()); while($row1=mysql_fetch_array($res1)) { echo("<option>" .$row1["professor"]."</option>"); } ?>--> </select> </td> <td colspan="2"> </td> </tr> <tr> <td>2º - </td> <td> <select name="titulo2" id="titulo2"> <option value="Selecione">Selecione</option> <? /********************************************************************************************* Consulta do idparticipantes e nome dos participantes existentes e mostrar na caixa select *********************************************************************************************/ $sql_oficinas= "SELECT idoficinas, titulo from oficinas order by titulo asc"; $res = mysql_query($sql_oficinas) or die (mysql_error()); while($row=mysql_fetch_array($res)) { echo("<option>" .$row["titulo"]."</option>"); } ?> </select> </td> <td> <select name="professor2" id="professor2"> <option value="Selecione">Selecione</option> <? /******************************************************************* Consulta do idparticipantes e nome dos participantes existentes ********************************************************************/ $sql_oficinas3= "SELECT idoficinas, professor from oficinas order by professor asc"; $res3 = mysql_query($sql_oficinas3) or die (mysql_error()); while($row3=mysql_fetch_array($res3)) { echo("<option>" .$row3["professor"]."</option>"); } ?> </select> </td> <td colspan="2"> </td> </tr> <tr> <td>3º - </td> <td> <select name="titulo3" id="titulo3"> <option value="Selecione">Selecione</option> <? /*************************************************************************************** Consulta do idparticipantes e nome dos participantes existentes e mostrar no select ***************************************************************************************/ $sql_oficinas= "SELECT idoficinas, titulo from oficinas order by titulo asc"; $res = mysql_query($sql_oficinas) or die (mysql_error()); while($row=mysql_fetch_array($res)) { echo("<option>" .$row["titulo"]."</option>"); } ?> </select> </td> <td> <select name="professores3" id="professores3"> <option value="Selecione">Selecione</option> <? /******************************************************************* Consulta do idparticipantes e nome dos participantes existentes ********************************************************************/ $sql_oficinas5= "SELECT idoficinas, professor from oficinas order by professor asc"; $res5 = mysql_query($sql_oficinas5) or die (mysql_error()); while($row5=mysql_fetch_array($res5)) { echo("<option>" .$row5["professor"]."</option>"); } ?> </select> </td> <td colspan="2"> </td> </tr> <tr> <td>4º - </td> <td> <SELECT NAME="titulo4" id="titulo4"> <option value="Selecione">Selecione</option> <? /*** Consulta do idparticipantes e nome dos participantes existentes e mostrar na caixa select ***/ $sql_oficinas= "SELECT idoficinas, titulo from oficinas order by titulo asc"; $res = mysql_query($sql_oficinas) or die (mysql_error()); while($row=mysql_fetch_array($res)) { echo("<option>" .$row["titulo"]."</option>"); } ?> </select> </td> <td> <select name="professores4" id="professores4"> <option value="Selecione">Selecione</option> <? /******************************************************************* Consulta do idparticipantes e nome dos participantes existentes ********************************************************************/ $sql_oficinas7= "SELECT idoficinas, professor from oficinas order by professor asc"; $res7 = mysql_query($sql_oficinas7) or die (mysql_error()); echo $res7; while($row7=mysql_fetch_array($res7)) { echo $row7["professor"]; echo("<option>" .$row7["professor"]."</option>"); } /***********************************************************************/ ?> </select> </td> <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> </tr> </table> </form> oficinas.ajax.php <?php header( 'Cache-Control: no-cache' ); header( 'Content-type: application/xml; charset="utf-8"', true ); $con = mysql_connect( 'localhost', 'root', '' ) ; mysql_select_db( 'teste', $con ); $titulo1 = mysql_real_escape_string( $_REQUEST['titulo1'] ); $oficinas = array(); $sql_oficinas = "SELECT idoficinas, professor FROM oficinas WHERE titulo=$titulo1 ORDER BY professor"; $res = mysql_query( $sql_oficinas ); while ( $row = mysql_fetch_assoc( $res ) ) { $oficinas[] = array( 'titulo' => $row['titulo'], 'professor' => $row['professor'], ); } echo( json_encode( $oficinas ) ); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 15, 2010 Qual select que some ? O do professor ? Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 16, 2010 Em 15/02/2010 at 15:17, 'Dee' disse: Qual select que some ? O do professor ? O select do professor...oq eu quero fazer é: qnd selecionar uma oficina...deve carregar no outro select o nome do professor que corresponde a essa oficina. Não oq esta errado noq eu fiz.... Entedeu? Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 16, 2010 você tem que por um Value no option do titulo echo("<option value=".$row["titulo"].">" .$row["titulo"]."</option>"); Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 17, 2010 Em 16/02/2010 at 14:33, 'Dee' disse: você tem que por um Value no option do titulo echo("<option value=".$row["titulo"].">" .$row["titulo"]."</option>"); Eu fiz oq você disse ....agora o select onde deve exibir o nome do professor de acordo com o titulo escolhido não some....mais não exibe nada...fica no "Selecione"....pode ser alguma coisa no ajax....o código do oficinas.ajas.php esta postado tb.... Olha como esta o código agora.... form.php <?php require "include/conexao.php"; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Formulário</title> <link href="css/ciaa.css" rel="stylesheet" type="text/css" /> <link href="css/estilo_paginas.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="conteudo"> <form action="insere_oficinas.php" method="post"> <table width="100%" border="0"> <tr> <td colspan="5"> </td> </tr> <tr> <td colspan="5" align="center"> </td> </tr> <tr> <td colspan="2"> </td> <td colspan="3"> </td> </tr> <tr> <td colspan="5"> </td> </tr> <tr> <td colspan="5"> </td> </tr> <tr> <td width="8%">1º -</td> <td width="19%"> <select name="titulo1" id="titulo1"> <option value="Selecione">Selecione</option> <? /*************************************************************************************** Consulta do idparticipantes e nome dos participantes existentes e mostrar no select ****************************************************************************************/ $sql_oficinas= "SELECT idoficinas, titulo from oficinas order by titulo asc"; $res = mysql_query($sql_oficinas) or die (mysql_error()); while($row=mysql_fetch_array($res)) { //echo("<option>" .$row["titulo"]."</option>"); echo("<option value=".$row["titulo"].">" .$row["titulo"]."</option>"); } ?> </select> <script src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load('jquery', '1.3'); </script> <script type="text/javascript"> $(function(){ $('#titulo1').change(function(){ if( $(this).val() ) { $('#professor1').hide(); $('.carregando').show(); $.getJSON('oficinas.ajax.php?search=',{titulo1: $(this).val(), ajax: 'true'}, function(j){ var options = '<option value=""></option>'; for (var i = 0; i < j.length; i++) { options += '<option value="' + j[i].professor1 + '">' + j[i].professor + '</option>'; } $('#professor1').html(options).show(); $('.carregando').hide(); }); } else { $('#professor1').html('<option value="">– Escolha um estado –</option>'); } }); }); </script> </td> <td width="51%"> <select name="professor1" id="professor1"> <option value="">Selecione</option> <?php /******************************************************************* Consulta do idparticipantes e nome dos participantes existentes ********************************************************************/ $sql_oficinas1= "SELECT idoficinas, professor from oficinas order by professor asc"; $res1 = mysql_query($sql_oficinas1) or die (mysql_error()); while($row1=mysql_fetch_array($res1)) { echo("<option>" .$row1["professor"]."</option>"); } ?> </select> </td> <td colspan="2"> </td> </tr> <tr> <td>2º - </td> <td> <select name="titulo2" id="titulo2"> <option value="Selecione">Selecione</option> <? /********************************************************************************************* Consulta do idparticipantes e nome dos participantes existentes e mostrar na caixa select *********************************************************************************************/ $sql_oficinas= "SELECT idoficinas, titulo from oficinas order by titulo asc"; $res = mysql_query($sql_oficinas) or die (mysql_error()); while($row=mysql_fetch_array($res)) { echo("<option>" .$row["titulo"]."</option>"); } ?> </select> </td> <td> <select name="professor2" id="professor2"> <option value="Selecione">Selecione</option> <? /******************************************************************* Consulta do idparticipantes e nome dos participantes existentes ********************************************************************/ $sql_oficinas3= "SELECT idoficinas, professor from oficinas order by professor asc"; $res3 = mysql_query($sql_oficinas3) or die (mysql_error()); while($row3=mysql_fetch_array($res3)) { echo("<option>" .$row3["professor"]."</option>"); } ?> </select> </td> <td colspan="2"> </td> </tr> <tr> <td>3º - </td> <td> <select name="titulo3" id="titulo3"> <option value="Selecione">Selecione</option> <? /*************************************************************************************** Consulta do idparticipantes e nome dos participantes existentes e mostrar no select ***************************************************************************************/ $sql_oficinas= "SELECT idoficinas, titulo from oficinas order by titulo asc"; $res = mysql_query($sql_oficinas) or die (mysql_error()); while($row=mysql_fetch_array($res)) { echo("<option>" .$row["titulo"]."</option>"); } ?> </select> </td> <td> <select name="professores3" id="professores3"> <option value="Selecione">Selecione</option> <? /******************************************************************* Consulta do idparticipantes e nome dos participantes existentes ********************************************************************/ $sql_oficinas5= "SELECT idoficinas, professor from oficinas order by professor asc"; $res5 = mysql_query($sql_oficinas5) or die (mysql_error()); while($row5=mysql_fetch_array($res5)) { echo("<option>" .$row5["professor"]."</option>"); } ?> </select> </td> <td colspan="2"> </td> </tr> <tr> <td>4º - </td> <td> <SELECT NAME="titulo4" id="titulo4"> <option value="Selecione">Selecione</option> <? /*** Consulta do idparticipantes e nome dos participantes existentes e mostrar na caixa select ***/ $sql_oficinas= "SELECT idoficinas, titulo from oficinas order by titulo asc"; $res = mysql_query($sql_oficinas) or die (mysql_error()); while($row=mysql_fetch_array($res)) { echo("<option>" .$row["titulo"]."</option>"); } ?> </select> </td> <td> <select name="professores4" id="professores4"> <option value="Selecione">Selecione</option> <? /******************************************************************* Consulta do idparticipantes e nome dos participantes existentes ********************************************************************/ $sql_oficinas7= "SELECT idoficinas, professor from oficinas order by professor asc"; $res7 = mysql_query($sql_oficinas7) or die (mysql_error()); echo $res7; while($row7=mysql_fetch_array($res7)) { echo $row7["professor"]; echo("<option>" .$row7["professor"]."</option>"); } /***********************************************************************/ ?> </select> </td> <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> </tr> </table> </form> </div> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 17, 2010 Olha Não sei se é isso, porquê não entendo de jQuery. Mas aqui: echo("<option value=".$row["titulo"].">" .$row["titulo"]."</option>"); Faltou aspas simples no value. echo("<option value='".$row["titulo"]."'>" .$row["titulo"]."</option>"); Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 18, 2010 Em 17/02/2010 at 15:43, 'Dee' disse: Olha Não sei se é isso, porquê não entendo de jQuery. Mas aqui: echo("<option value=".$row["titulo"].">" .$row["titulo"]."</option>"); Faltou aspas simples no value. echo("<option value='".$row["titulo"]."'>" .$row["titulo"]."</option>"); Olá...eu fiz oq você fez....mais o select onde deve mostrar o nome do professor...voltou a sumir.....qnd seleciono o titulo o select do professor desaparece... Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 18, 2010 Entendi... Outra coisa, o titulo é texto ou numero ? Se for texto no seu select: $sql_oficinas = "SELECT idoficinas, professor FROM oficinas WHERE titulo=$titulo1 ORDER BY professor"; você tem que por aspas no $titulo1 $sql_oficinas = "SELECT idoficinas, professor FROM oficinas WHERE titulo = '$titulo1' ORDER BY professor"; Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 18, 2010 Em 18/02/2010 at 11:17, 'Dee' disse: Entendi... Outra coisa, o titulo é texto ou numero ? Se for texto no seu select: $sql_oficinas = "SELECT idoficinas, professor FROM oficinas WHERE titulo=$titulo1 ORDER BY professor"; você tem que por aspas no $titulo1 $sql_oficinas = "SELECT idoficinas, professor FROM oficinas WHERE titulo = '$titulo1' ORDER BY professor"; fiz a correção...porém continua do msm jeito....o select some... Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 18, 2010 Opaaa owieowiew Outra coisa, eu vejo aos poucos, processo aqui é lento pós carnaval dá nisso aqui: $titulo1 = mysql_real_escape_string( $_REQUEST['titulo1'] ); Nao eh $_REQUEST['titulo1']; Por que ? No seu jQuery você ta chamando o link oficinas.php?search, entao é: $titulo1 = mysql_real_escape_string( $_REQUEST['search'] ); Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Fevereiro 18, 2010 moça, envia o mime-type correto header( 'Content-type: application/xml; charset="utf-8"', true );você está trabalhando com JSON, não XML header('Content-Type: application/json; charset="utf-8"', true); Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 18, 2010 Em 18/02/2010 at 11:59, 'Evandro Oliveira' disse: moça, envia o mime-type correto header( 'Content-type: application/xml; charset="utf-8"', true );você está trabalhando com JSON, não XML header('Content-Type: application/json; charset="utf-8"', true); realizei a alteração....mais continua sumindo o select Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Fevereiro 18, 2010 tira as funções .hide() do jQuery Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 18, 2010 Em 18/02/2010 at 11:43, 'Dee' disse: Opaaa owieowiew Outra coisa, eu vejo aos poucos, processo aqui é lento pós carnaval dá nisso aqui: $titulo1 = mysql_real_escape_string( $_REQUEST['titulo1'] ); Nao eh $_REQUEST['titulo1']; Por que ? No seu jQuery você ta chamando o link oficinas.php?search, entao é: $titulo1 = mysql_real_escape_string( $_REQUEST['search'] ); ? Compartilhar este post Link para o post Compartilhar em outros sites
Aprendiz_prog 0 Denunciar post Postado Fevereiro 18, 2010 Ola, Acho que com o autocomplete pode te ajudar nisso. http://www.idealmind.com.br/tag/combobox-autocomplete/ Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 18, 2010 Em 18/02/2010 at 12:18, 'Evandro Oliveira' disse: tira as funções .hide() do jQuery tirei as funções .hide()....agora o select não some.....mais fica estatico......qnd seleciono o titulo não exibe o nome do professor correspondente.....tenho q selecionar manual.... Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Fevereiro 18, 2010 mas ele lista/atualiza o select de professores corretamente???? Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 18, 2010 Em 18/02/2010 at 12:51, 'Evandro Oliveira' disse: mas ele lista/atualiza o select de professores corretamente???? como eu "puxo" td do BD...qnd carrego a página....ele exibe os dois selects o select titulo com todos os titulos e o select professor com todos os nomes dos professores...... Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Fevereiro 18, 2010 e só existe um professor pra cada título, e você quer que, ao selecionar um título, o professor correspondente seja automaticamente selecionado, ok? você vai enviar via AJAX apenas o nome(id) do <option> que contém o nome do professor correspondente [oficina][professor] artes João violão Ricardo dança Ana professores [id][nome] 1 João 2 Ricardo 3 Ana ao enviar "artes" recebe apenas 1, que é o ID correspondente ao João $.getJSON('ajax.php',{"oficina":"artes"},function(resposta){alert(resposta)}); deve subir uma caixa de alerta contendo "1", apenas isso. agora trabalhe a função para que ela faça o que realmente é desejado: ...artes"},function(resposta){ $('#professores option').removeAttr('selected'); $('#professores option[value='+resposta+']).attr('selected','selected'); } Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Fevereiro 18, 2010 Eu fiz uma alteração.....agora...ele exibe a mgs de carregando.....porém esta dando um erro: No log de erros do firefox ele me mostra a seguinte msg: Erro: formatado incorretamente 2<br />.... Ele pega o id correto nesse caso o id=2 e aponta para o <br/> Meu código esta assim: form.oficinas.php <select name="idoficinas" id="idoficinas"> <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> <script src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load('jquery', '1.3'); </script> <script type="text/javascript"> $(function(){ $('#idoficinas').change(function(){ if( $(this).val() ) { $('#idprofessores').hide(); $('.carregando').show(); //$.getJSON('oficinas.ajax.php?search=',{titulo1: $(this).val(), ajax: 'true'}, function(j){ $.getJSON('oficinas.ajax.php?search=',{idoficinas: $(this).val(), ajax: 'true'}, function(j){ var options = '<option value=""></option>'; for (var i = 0; i < j.length; i++) { options += '<option value="' + j[i].idprofessores + '">' + j[i].nome + '</option>'; } $('#idprofessores').html(options).show(); $('.carregando').hide(); }); } else { $('#idprofessores').html('<option value="">– Escolha um Professor –</option>'); } }); }); </script> 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 = mysql_real_escape_string( $_REQUEST['idoficinas'] ); echo $idoficinas; $professores = array(); $sql = "SELECT idprofessores, nome FROM professores WHERE oficinas_idoficinas=$idoficinas ORDER BY nome"; $res = mysql_query( $sql ); while ( $row = mysql_fetch_assoc( $res ) ) { $professores[] = array( 'idprofessores' => $row['idprofessores'], 'nome' => $row['nome'], ); } echo( json_encode( $professores ) ); ?> Compartilhar este post Link para o post Compartilhar em outros sites