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

thinkbrunus

[RESOLVIDO] Formulário Com Várias Combos Dinâmicas

6 mensagens neste tópico

Viva!

Estou a tentar criar um formulário com várias combos dinâmicas, e apenas está a funcionar a 1ª combo, a 2ª já deixa de funcionar.

Para ser mais explicito estou a fazer o seguinte:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TITLE</title>
</head>
<body>
<div id="Container">
<div id="Contents">
<form>
	<table class="layout">
	<tr class="texto">
	<td>Divisão</td>
	<td colspan="2"><select name="combo_divisao" id="combo_divisao">
			<option value="<?=$rs['idDivisao']?>"><?=$rs['nomeDivisao']?></option>
			</select></td>
		</tr>
   <tr class="texto">
 	<td>Utilizador</td>
	<td colspan="2"><select name="combo_utilizador" id="combo_utilizador">
		 <option selected="selected">.: Selecionar :.</option>
	   <?php	
				   $sql_a = "SELECT id_utilizador,apelido,posto.sigla AS siglaPosto,classe.sigla AS siglaClasse
			FROM db_ema.utilizador,db_ema.posto,db_ema.classe
			WHERE utilizador.id_posto = posto.id_posto AND utilizador.id_classe = classe.id_classe
			AND id_divisao = '".$rs['idDivisao']."' ORDER BY posto.id_posto ASC,d_prom ASC,antiguidade_relativa ASC";
			$query_a = mysql_query($sql_a) or die(mysql_error());
				while ($rs_a = mysql_fetch_assoc($query_a)){
					echo '<option value="' . $rs_a['id_utilizador']. '">'.$rs_a['siglaPosto'].' '
					.$rs_a['siglaClasse'].' '.$rs_a['apelido'].'</option>';
				}
	?>						 
				 </select>
			 </td>
</tr>
<tr class="texto">
	<td>Natureza do Serviço</td>
	<td colspan="2"><select name="combo_natureza_servico" id="combo_natureza_servico" >
		<option selected="selected">.: Selecionar :.</option>
		 <?php
		$sql_b = "SELECT * FROM natureza_servico ORDER BY id_natureza_servico";
		$query_b = mysql_query($sql_b);
		while ($rs_b = mysql_fetch_assoc($query_b)){
			echo '<option value="' . $rs_b['id_natureza_servico']. '">' . $rs_b['nome']. '</option>';
		}
	?>
		</select>
	 </td>
</tr>
....
....
...
...
</div>
</div
</body>
</html>

Tive o cuidado de utilizar outra variavel para a 2ª combo ($rs_b), mas não estou a perceber qual é o problema....

Uma ajudinha por favor!

APARTE: Não te esqueças de usar Geshi para tornar o post mais apresentável. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes usar a mesma variável. Ao reutilizares, estás a poupar memória.

Ele dá algum erro SQL? A tabela existe realmente?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não dá qualquer erro e a tabela existe e tem resultados.

O mais curioso é que experimentei colocar alguns valores na combobox para testar

(ex: echo '<option value="1">Valor X</option>':thumbsup: e desta forma também não funciona, só funciona em HTML puro, que para o caso não interessa...

Nunca tinha visto tal coisa!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ao fazeres o echo, podes mostrar o código fonte que ele retorna? :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já experimentast ao fazer o echo em vez de utilizares o nome da coluna utilizares a posição da mesma na tabela?

do genero:

tabela carros:

colunas: id  |  marca  |  modelo

$sql=mysql_query("SELECT * FROM marcas")or die(mysql_error());

$row=mysql_fetch_array($sql);

se queres listar o id fazes echo $row[0]

se queres listar a marca echo $row[1]

e o modelo echo [2]

já fiz várias páginas com combos que iam buscar as opções a base de dados e nunca tive problemas

tenho este exemplo que está numa página que eu fiz:

<table align="left" width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" class="informacoes_discretas">
    	<tr>
        	<td class="marca" align="left" colspan="5"><strong>CARACTERÍSTICAS DA VIATURA</strong></td>
            
        </tr>
        <tr>
          <td valign="top" class="marca_veiculo" align="left"> </td>
          <td valign="top" class="marca_veiculo" align="left"> </td>
          <td class="marca_veiculo" align="left"></td>
          <td valign="top" class="marca_veiculo" align="left"> </td>
          <td valign="top" align="left"> </td>
        </tr>
        <tr>
        	<td valign="top" width="236" class="marca_veiculo" align="left">
            Marca do Automovel:
      </td>
            <td valign="top" width="212" class="marca_veiculo" align="left">
            <?php $sqlt = mysql_query("SELECT * FROM marcas ORDER BY id ASC") or die (mysql_error());
							$quant = mysql_num_rows($sqlt); ?>
                        
              <select name="marca" id="marca" tabindex="3"  class="combos">
                        	
        <?php while($row = mysql_fetch_array($sqlt)){ ?>
        <?php if($row[0]!=0){ ?>
        <option value="<?php echo $row[0] ?>" <?php if (!(strcmp($row[0], $marca))) {echo "selected=\"selected\"";} ?>><?php echo $row[1]?></option> <?php } ?>
        <?php } ?>
      </select>
          * </td>
            <td class="marca_veiculo" align="left" width="64">
            </td>
            <td valign="top" width="168" class="marca_veiculo" align="left">Modelo:
          </td>
            <td valign="top" width="319" align="left"><input name="modelo" type="text" class="modelo" id="modelo" value="<?php echo "$modelo" ?>"  />* 
</td>
        </tr>
        <tr>
        	<td valign="top" class="marca_veiculo" align="left">
            	Ano:
            </td>
            <td valign="top" align="left">
            <?php $sqlt = mysql_query("SELECT * FROM anos_auto ORDER BY ano DESC") or die (mysql_error());
							$quant = mysql_num_rows($sqlt); ?>
                        
                        <select name="ano" id="ano" tabindex="3"  class="combos">
                        	
        <?php while($row = mysql_fetch_array($sqlt)){ ?>
        <option value="<?php echo $row[1] ?>" <?php if (!(strcmp($row[1], $ano))) {echo "selected=\"selected\"";} ?>><?php echo $row[1]?></option>
        <?php } ?>
      </select>
          <span class="marca_veiculo"> *</span></td>
            <td align="left">
            </td>
            <td valign="top" class="marca_veiculo" align="left">
            	Mês:
            </td>
            <td valign="top" align="left">
            <?php $sqlt = mysql_query("SELECT * FROM meses ORDER BY id ASC") or die (mysql_error());
							$quant = mysql_num_rows($sqlt); ?>
                        
                        <select name="mes" id="mes" tabindex="3"  class="combos">
                        	
        <?php while($row = mysql_fetch_array($sqlt)){ ?>
        <option value="<?php echo $row[0] ?>" <?php if (!(strcmp($row[0], $mes))) {echo "selected=\"selected\"";} ?>><?php echo $row[1]?></option>
        <?php } ?>
      </select>
            
            </td>
        </tr>
        <tr>
        	<td valign="top" class="marca_veiculo" align="left">
            	Categoria:
            </td>
            <td valign="top" align="left">
            <?php $sqlt = mysql_query("SELECT * FROM categoria_auto ORDER BY id ASC") or die (mysql_error());
							$quant = mysql_num_rows($sqlt); ?>
                        
                        <select name="categoria" id="categoria" tabindex="3"  class="combos">
                        	
        <?php while($row = mysql_fetch_array($sqlt)){ ?>
        <?php if($row[0]!=0){ ?>
        <option value="<?php echo $row[0] ?>" <?php if (!(strcmp($row[0], $categoria))) {echo "selected=\"selected\"";} ?>><?php echo $row[1]?></option><?php } ?>
        <?php } ?>
      </select>
            
            </td>
            <td align="left">
            </td>
            <td valign="top" class="marca_veiculo" align="left">
            	Côr:
            </td>
            <td valign="top" align="left">
            
            <?php $sqlt = mysql_query("SELECT * FROM cor ORDER BY cor ASC") or die (mysql_error());
							$quant = mysql_num_rows($sqlt); ?>
                        
                        <select name="cor" id="cor" tabindex="3"  class="combos">
                        	
        <?php while($row = mysql_fetch_array($sqlt)){ ?>
        <option value="<?php echo $row[0] ?>" <?php if (!(strcmp($row[0], $cor))) {echo "selected=\"selected\"";} ?>><?php echo $row[1]?></option>
        <?php } ?>
      </select>
            
            </td>
        </tr>
</table>

é apenas um excerto de um formulario

como podes ver tenho ai varias combos e vão buscar as opções a base de dados, todas elas funcionam correctamente...

tenta basear-te neste exemplo para construir as tuas.

qualquer duvida tas a vontade

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado a todos pela vossa ajuda!

Acabei por começar a fazer a página do zero e acabou por não dar qualquer problema, devia ser um pormenor daqueles quase invisíveis...

Mais uma vez obrigado pela atenção.

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