Pessoal, no form que estou fazendo tenho a situação:
1º Uso um <select> para lista os dados do BD pacientes;
2º Uso um <select> para lista os dados do BD medicos;
3º Uso um <select> para lista os dados do BD convenios;
4º Uso um <select> para lista os dados do BD categoria;
5º Uso um <select> para lista os dados do BD exames;
Na tabela de exames tenho uma campos onde é gravado o código da categoria, ou seja, podem existir vários exames para uma determinada categoria.
O que quero fazer aqui é o seguinte, quando o usuário escolher a categoria e passar para o <select id_exames> selecione todos os exames relacionados a categoria. Bem abaixo segue a forma que estou fazendo, mas não estou conseguindo fazer a seleção.<form action="frm_resultado_di.php" method="post" name="frm" id="frm_res1"> <br /> <table width="80%" border="1" align="center" bgcolor="#E0FFFF"> <tr> <td valign="top"> <table width="70%" border="0" align="center"> <tr> <td colspan="3" align="center"><h1>Cadastro de Exames - Diagnostico por Imagem</h1></td> </tr> <tr> <td width="31%" align="right">Paciente:</td> <td colspan="2"><select name="id_paciente" id="id_paciente"> <option></option> <?php $sql=mysql_query("SELECT * FROM pacientes ORDER BY nome_pac") or die ("Erro 2. "); while ($linha=mysql_fetch_array($sql)){ $resultado=$linha["codigo_pac"]; if ($id_paciente==$resultado) {$selecionado = "selected";} else {$selecionado = "";} echo "<option value =\"$resultado\" $selecionado > $linha[nome_pac] </option>"; } ?> </select></td> </tr> <tr> <td align="right">Médico:</td> <td colspan="2"><select name="id_medico" id="id_medico"> <option></option> <?php $sql=mysql_query("SELECT * FROM medicos ORDER BY nome_medico") or die ("Erro 2. "); while ($linha=mysql_fetch_array($sql)){ $resultado1=$linha["id_medico"]; if ($id_medico==$resultado1) {$selecionado1 = "selected";} else {$selecionado1 = "";} echo "<option value =\"$resultado1\" $selecionado1 > $linha[nome_medico] </option>"; } ?> </select></td> </tr> <tr> <td align="right">Convênio:</td> <td colspan="2"><select name="id_convenio" id="id_convenio"> <option></option> <?php $sql=mysql_query("SELECT * FROM convenios ORDER BY nome_convenio") or die ("Erro 2. "); while ($linha=mysql_fetch_array($sql)){ $resultado3=$linha["id_convenio"]; if ($id_convenio==$resultado3) {$selecionado3 = "selected";} else {$selecionado3 = "";} echo "<option value =\"$resultado3\" $selecionado3 > $linha[nome_convenio] </option>"; } ?> </select></td> </tr> <tr> <td align="right">Data / Hora:</td> <td width="14%"><input name="txt_data" type="text" id="txt_data" size="10" maxlength="10" /> /</td> <td width="55%"><input name="txt_hora" type="text" id="txt_hora" size="6" maxlength="6" /></td> </tr> <tr> <td align="right">Categoria:</td> <td colspan="2"> <select name="id_categoria" id="id_categoria"> <option></option> <?php $sql=mysql_query("SELECT * FROM categoria ORDER BY descriscao_cat") or die ("Erro 2. "); while ($linha=mysql_fetch_array($sql)){ $resultado4=$linha["codigo_cat"]; if ($id_categoria==$resultado4) {$selecionado4 = "selected";} else {$selecionado4 = "";} echo "<option value =\"$resultado4\" $selecionado4 > $linha[descriscao_cat] </option>"; } ?> </select> </td> <input type="hidden" name="id_paciente" value="<?php echo $id_paciente; ?>" /> <input type="hidden" name="id_medico" value="<?php echo $id_medico;?>" /> <input type="hidden" name="id_convenio" value="<?php echo $id_convenio; ?>" /> <input type="hidden" name="id_categoria" value="<?php echo $id_categoria;?>" /> <input type="button" name="verifica_categoria" value="OK" onclick="f_ajx('frm_res1')" /> </tr> </table> </td> </tr> </table> </form> <form action="op_resultado_di.php" name="frm_res2" method="post" id="frm_res1"> <table width="80%" border="1" align="center" bgcolor="#E0FFFF"> <tr> <td> <select name="id_exames" id="id_exames"> <option></option> <?php $id_categoria = $_GET["id_categoria"]; $result = mysql_query("SELECT * FROM exames WHERE codigo_cat_exa = ".$categoria); while($row = mysql_fetch_array($result) ){ echo "<option value='".$row['codigo_exa']."'>".$row['descriscao_exa']."</option>"; } if (isset($_POST["verifica_categoria"])) { $id_paciente = $_POST["id_paciente"]; $id_medico = $_POST["id_medico"]; $id_convenio = $_POST["id_convenio"]; $id_categoria = $_POST["id_categoria"]; $sql=mysql_query("SELECT * FROM exames ORDER BY descriscao_exa where codigo_cat_exa ='$id_categoria'") or die ("Erro 2. "); while ($linha1=mysql_fetch_array($sql)){ $resultado5=$linha1["codigo_exa"]; if ($id_exames==$resultado5) {$selecionado5 = "selected";} else {$selecionado5 = "";} echo "<option value =\"$resultado5\" $selecionado5 > $linha1[descriscao_exa] </option>"; } } ?> </select> </td> </tr> <table> </form>
é o seguinte... você precisa fazer duas consultas... uma com todos os resultados e a outra com o valor que está no banco de dados... olha o exemplo meu:
<?php include("../includes/config.php"); $sql_cidade = mysql_query("SELECT * FROM cidades"); $sql_cidade2 = mysql_query("SELECT * FROM cidades WHERE id_cidade = '$id_cidade' "); $cid2 = mysql_fetch_array($sql_cidade2); $id_cidade2 = $cid2["id_cidade"]; $cidade2 = $cid2["id_cidade"]; $total_cidade = mysql_num_rows($sql_cidade); ?> <select name="cidade" class="form-melhor" id="cidade"> <? while($cid = mysql_fetch_array($sql_cidade)){ $id_cidade = $cid["id_cidade"]; $cidade = $cid["cidade"]; if ($cidade2 == $cidade) { $select = "selected"; } else { $select = ""; } echo "<option value='$id_cidade' $select>$cidade</option>"; } ?> </select>
espero que tenha ajudado