Jump to content

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


thinkbrunus
 Share

Recommended Posts

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. 🙂

Link to comment
Share on other 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>'👍 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!

Link to comment
Share on other 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

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.