• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

thinkbrunus

[Resolvido] Preencher segundo option select

13 mensagens neste tópico

Boas,

Criei um form onde tenho duas combobox a ir buscar dados à base dados, e pretendo que os dados disponiveis para escolha na segunda combobox sejam apresentados consforme o valor da 1ª combobox.

Já andei em pesquisas e encontrei algumas coisas em ajax e também em java (getelementbyid)...mas na verdade não consigo desenvolver nada!

Agradeço desde já alguma dica.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A não ser que envies os dados correspondentes às possibilidades todas para o cliente de alguma forma (em formato javascript por exemplo) a forma de fazer isso é mesmo usando ajax.

Uma vez que inicialmente afixaste isto na secção de PHP, aconselho-te a usar uma framework de ajax para PHP e deixa as complicações do funcionamento do ajax à conta dela ;)

Estas duas são as mais faceis de usar que conheço:

http://www.phplivex.com/

http://xajaxproject.org/

Mas há outras

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na verdade é o que tenho lido por aí...AJAX é a melhor solução.

Estive a ver os links recomendados, e na verdade por não perceber AJAX, acabo por não saber como integrar esse código com o meu....

Deixo o meu código, caso possam dar mais alguma dica!

Obrigado

<tr>
   <td width="39%" align="left">Divisão: </td>
   <td width="61%" align="left">
   	<select name="slt_divisao">
       	<option selected="0">Seleccione</option>
       <?php 		
		$sql = "SELECT * FROM bj_divisao";
		$res = mysql_query($sql) or die("Query Error" . mysql_error());
		while ($row = mysql_fetch_array($res)){
			echo "<option value=" . $row['id_divisao'] . ">" . $row['divisao'] . "</option>";
		};
	?>
       </select>   
   </td>
 </tr>
 <tr>
   <td align="left">Utilizador: </td>
   <td align="left"><select name="slt_user">
       <option selected="0">Seleccione</option>
       <?php 		
		$sql = "SELECT * FROM bj_divisao, bj_ndetalhe WHERE bj_ndetalhe.id_divisao=bj_divisao.id_divisao";
		$res = mysql_query($sql) or die("Query Error" . mysql_error());
		while ($row = mysql_fetch_array($res)){
			echo "<option value=" . $row['bj_divisao.id_divisao'] . ">" . $row['ndetalhe'] . "</option>";
		};
	?>
   	</select>
   </td>
 </tr>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado yoda!

Muito útil este exemplo, já consegui adaptar ao que pretendo. Apenas está a dar-me um espaçamento entre valores na segunda combo...não estou a perceber porquê.

Vou tentar colocar on-line para poderem ver, depois coloco aqui o link.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá novamente!

Deixo o link do tal código que com o vosso apoio coloquei a funcionar como desejava, apenas está a colocar-me espaços (ou valores hidden) entre os campos que apresenta.

Deixo o link para consulta

http://thinkbrunus.pt.vu/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

Na verdade o link que deixei está a fazer o que pretendo, apenas tou com problema no espaço em branco que coloca entre os valores inseridos....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se o código PHP que usaste para gerar a combobox for aquele lá de cima, talvez o problema esteja na Query de SQL. Se puderes, usa o PHPMyAdmin, ou uma consola do MYSQL para ver que linhas resultam da tua query:

SELECT * FROM bj_divisao, bj_ndetalhe WHERE bj_ndetalhe.id_divisao=bj_divisao.id_divisao

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Apenas faltava ums "/" para fechar um option!

De a qualquer forma obrigado pela ajuda

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Depois de conseguir com muitas ajudas a desenvolver este enigma das combobos, agora deparo-me que apenas funciona correctamente no firefox.....alguém sabe dar alguma dica sobre o assunto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já me indicaram a solução, caso haja alguém com o mesmo problema, a solução é adicionar a seguinte linha:

document.getElementById("txtHint").outerHTML="<select id=\"txtHint\" name=\"txtHint\">"+xmlHttp.responseText+"</select>";

Assim a aplicação fica compativel com o IE!

Abraços

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora