Jump to content

Carregar Combobox a partir de outra


NunoDinis
 Share

Recommended Posts

Boa tarde,

estou a tentar carregar uma combobox a partir de um valor que selecione noutra.

Tenho o seguinte código:

<?php
echo "<select style=\"width: 125px\" name='cbboxProfessor' onchange=javascript:document.forms[0].submit() >";
echo "<option value='cbboxProfessor'></option>";
include('../../BD.php');

if (isset($_POST["cbboxDisc"]) and ($_POST["cbboxDisc"] != ""))
{
$SELECT="SELECT ProfessoresDisciplinas.codProfessor, Professores.Nome
FROM Disciplinas ProfessoresDisciplina, Professores
WHERE Disciplinas.codDisciplina = ProfessoresDisciplinas.codDisciplina and
ProfessoresDisciplinas.codProfessor = Professores.codProfessor
and (Disciplinas.Disciplina = '".$_POST['cbboxProf']."')";
$lista=mssql_query($SELECT);

while($liista=mssql_fetch_array($lista))
{
echo "<option value=$liista[0] selected=\"selected\" >";
echo "$liista[1] </option>";
}

$SELECT="SELECT ProfessoresDisciplinas.codProfessor, Professores.Nome
FROM Disciplinas, Professores, ProfessoresDisciplinas
WHERE
Disciplinas.codDisciplina = ProfessoresDisciplinas.codDisciplina and
ProfessoresDisciplinas.codProfessor = Professores.codProfessor
WHERE (Disciplinas.Disciplina = '".$_POST['cbboxProf']."')";

$GET_DROPDOWN=mssql_query($SELECT);
while($codigos_instituicoes=mssql_fetch_array($GET_DROPDOWN))
{
echo "<option value=$codigos_instituicoes[0] >";
echo "$codigos_instituicoes[1] </option>";
}
}
?>

Tenho uma combobox onde carrega as disciplinas, e a partir do valor que está na mesma quero carregar outra com os professores dessas disciplinas.

Alguma ajuda ?

Edited by scorch
Adicionado Geshi.

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Link to comment
Share on other sites

<?php
echo "<select style=\"width: 125px\" name='cbboxProfessor' onchange=javascript:document.forms[0].submit() >";
echo "<option value='cbboxProfessor'></option>";
include('../../BD.php');
if (isset($_POST["cbboxDisc"]) and ($_POST["cbboxDisc"] != ""))
{
$SELECT="SELECT ProfessoresDisciplinas.codProfessor, Professores.Nome
FROM Disciplinas ProfessoresDisciplina, Professores
WHERE Disciplinas.codDisciplina = ProfessoresDisciplinas.codDisciplina and
ProfessoresDisciplinas.codProfessor = Professores.codProfessor
and (Disciplinas.Disciplina = '".$_POST['cbboxProf']."')";
$lista=mssql_query($SELECT);
while($liista=mssql_fetch_array($lista))
{
echo "<option value=$liista[0] selected=\"selected\" >";
echo "$liista[1] </option>";
}
$SELECT="SELECT ProfessoresDisciplinas.codProfessor, Professores.Nome
FROM Disciplinas, Professores, ProfessoresDisciplinas
WHERE
Disciplinas.codDisciplina = ProfessoresDisciplinas.codDisciplina and
ProfessoresDisciplinas.codProfessor = Professores.codProfessor
WHERE (Disciplinas.Disciplina = '".$_POST['cbboxProf']."')";
$GET_DROPDOWN=mssql_query($SELECT);
while($codigos_instituicoes=mssql_fetch_array($GET_DROPDOWN))
{
echo "<option value=$codigos_instituicoes[0] >";
echo "$codigos_instituicoes[1] </option>";
}
}
?>

fica igual -.-

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Link to comment
Share on other sites

Boas,

podes fazer de 2 maneiras:

  1. Carregas todas as combinações possiveis em variaveis e depois quando o valor da primeira comboBox troca com javascript trocas o valor da outra.
  2. Carregas as disciplinas e os seus professores quando a comboBox de disciplinas troca envias o form e carregas os professores para a nova disciplina.

Espero ter ajudado

Tiago Tavares

Link to comment
Share on other sites

não é uma linguagem (e também não estou a falar do detergente)

é uma conjunto de tecnologias que incorpora o javascript (script client-side) e XML para pedidos ao servidor.

no fundo é uma maneira de por o browser a efectuar pedidos ao servidor sem a necessidade de fazer reload de uma página completa.

o que tu queres é isso, no momento que seleccionas o elemento na primeira combobox, efectuares um pedido ao servidor com a informação da combobox seleccionada. a resposta será informação a ser apresentada na segunda combobox.

existe outras maneira de resolver a situação (como foi descrita anteriormente) mas são sempre mais trabalhosas e/ou pesadas

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Bom dia pessoal,

Segui o vosso conselho e decidi fazer com Ajax. Mas está-me a dar uns problemazitos..

O primeiro erro até parece simples, mas está-me a baralhar um pouco. Com o código abaixo não consigo carregar a combobox com os valores da minha tabela Disciplinas.

<?	
include("BD.php");

$sql = "SELECT * from Disciplinas";	
$sql = mysql_query($sql);	
$row = mysql_num_rows($sql);
?>
 Disciplina: 
 <select name="listaDisciplinas" onChange="Dados(this.value);">
	 <option value="0">Selecione a Disciplina</option>
 <?php
for($i=0; $i<$row; $i++)
{
?> <option value="<?php echo mysql_result($sql, $i, "codDisciplina"); ?>">
<?php echo mysql_result($sql, $i, "Disciplina"); ?></option><?php
}
?>
 </select>
 <br><br>
 Professor: 
 <select name="listCidades" onChange="alert(this.value);">
	 <option id="opcoes" value="0">--Primeiro selecione a Disciplina--</option>
 </select>

O que posso estar eu a fazer mal ?

Edited by NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.