Ir para conteúdo
  • 0
Vilefort Consultoria

Php campo Select Value

Pergunta

Olá a todos,

por gentileza estou com um problema em um aplicação em Php, tenho um select que traz informações de um banco de dados.

A confecção do select está Ok, porém na hora que estou precisando gravar as informações da seleção o campo value

esta retornado os arrays vazios. Alguém poderia me ajudar.

 

segue select.

<select name="CodigoPrincipal" size="1" style="color: #FF0000" title="Selecione a Unidade Principal" >
                              <option value=""></option>
                              <?php
                                if($i_adm == 0){
                                  $sql_con1 = "SELECT cod_unidade, unidade FROM UNIDADE ORDER BY UNIDADE";
                                }else{        
                                  $sql_con1 = "SELECT cod_unidade, unidade FROM UNIDADES WHERE 
                                                 orgao_superior = '$i_cod_orgao' AND DEPARTAMENTO = '$i_cod_depto' AND regional >= '$i_cod_regional'
                                               ORDER BY unidade_ponta";
                                }
                                    $busca     = @mssql_query($sql_con1);
                                    $registros = @mssql_num_rows($busca);
                                    if($registros > 0){
                                        while($rs = @mssql_fetch_array($busca)){
                                        $campo = $rs[cod_unidade].'|'.$rs[unidade];
                                  ?>
                              <option value="<?=$campo?>" <? if($CodigoPrincipal == $rs[cod_unidade]){?>selected<?}?>> 
                              <?=$rs[unidade].' - '.$rs[cod_unidade]?>
                              </option>
                              <?}?>
                              <? }?>
                            </select>

 

Editado por Alaerte Gabriel
Adição da tag CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites

4 respostas a esta questão

Recommended Posts

  • 0

Olha, tente este código aqui.

Pode ser que sua requisição SQL não esteja retornando nenhum dado.

Reparei que em numa das queries você chama a tabela de "UNIDADE". Já na outra você a chama de "UNIDADES". São duas tabelas distintas mesmo? 

<select name="CodigoPrincipal" size="1" style="color: #FF0000" title="Selecione a Unidade Principal" >
    <option value=""></option>
    <?php
        $sql_con1 = ($i_adm == 0)? "SELECT cod_unidade, unidade FROM UNIDADE ORDER BY UNIDADE" :
                                   "SELECT cod_unidade, unidade FROM UNIDADES "
                                  ."WHERE orgao_superior = '$i_cod_orgao' AND departamento = '$i_cod_depto' AND regional >= '$i_cod_regional' ORDER BY unidade_ponta";
 
        $busca     = @mssql_query($sql_con1);
        $registros = @mssql_num_rows($busca);
 
        if($registros > 0){
            while($rs = @mssql_fetch_array($busca)){
                $campo = $rs[cod_unidade].'|'.$rs[unidade];
                $selected = ($rs[cod_unidade] == $CodigoPrincipal)? 'selected' : '';
                echo '<option value="'.$campo.'" '.$selected.'>'.$rs[unidade].' - '.$rs[cod_unidade].'</option>';
            }
        }
    ?>
</select>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Olá boa noite e obrigado pela resposta.

Vou tentar explicar o código. O prblema Ezequiel é somente na hora de submeter o dados para gravar daí que a varivel CodigoPrincipal não traz nada. O que é estranho que em ambiente local tudo funciona perfeitamente sem erros, somente

quando publico a aplicação que não funciona, não é só este código qualquer código do select não traz a informação. O código em si é so para trazer dados de um banco de dados via SELECT e salvar o código. Se puder me ajudar, agradeço.

 

                                 //Campo do Select                               

<select name="CodigoPrincipal" size="1" style="color: #FF0000" title="Selecione a Unidade Principal" > <option value=""></option>
                             <?php
                                  $sql_con1 = "SELECT cod_unidade, unidade FROM UNIDADES ORDER BY UNIDADE";
                                    $busca     = @mssql_query($sql_con1);
                                    $registros = @mssql_num_rows($busca);
                                    if($registros > 0){
                                        while($rs = @mssql_fetch_array($busca)){

                                        //Traz o código da unidade e o nome da unidade
                                        $campo = $rs[cod_unidade].'|'.$rs[unidade];
                                  ?>

                                //Após a seleção armazena tudo na Variavel CodigoPrincipal
                              <option value="<?=$campo?>" <? if($CodigoPrincipal == $rs[cod_unidade]){?>selected<?}?>> <?=$rs[unidade]?>
                              </option>
                              
                              <?}?>
                              <? }?>
                            </select>

 

Editado por Alaerte Gabriel
Adição da tag CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
54 minutos atrás, Fvilefort disse:

<option value="<?=$campo?>" <? if($CodigoPrincipal == $rs[cod_unidade]){?>selected<?}?>> <?=$rs[unidade]?>

 acho que o erro está nessa linha.dá uma analisada na variavel $campo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Obrigado a todos que ajudaram.

Descobri a razão é problema, como a busca das informações é feita pelo código em PHP as referência tem que ser informadas. Ou seja;

 

Onde <? tem que ser <?php, onde <?=campo?> tem que ser <?php echo campo>

 

Então se alguém precisar da função de busca informações em banco de dados através de um SELECT option, segue o código completo abaixo. Agradeço a todos.

 

 <select name="NomeVariavel" size="1"  style="color: #FF0000" id="select"  title="Selecione..." >
                              <option value=""></option>

                               //Chama a função em SQL para pesquisar no banco de Dados
                              <?php 

                                    $sql = "SELECT codigo, nome FROM cliente ORDER BY nome'";
                                    $busca     = @mssql_query($sql);
                                    $registros = @mssql_num_rows($busca);
                                    if($registros > 0){
                                    while($rs = @mssql_fetch_array($busca)){

                                          // Variavel que vai armazenar as informações
                                          $campo = $rs[codigo]."|".$rs[nome];
                              ?>
                              <option value="<?php echo $campo?>" <?php if($NomeVariavel == $rs[codigo] ){?> selected <? }?>>

                               //Mostra a informação no SELECT
                              <?php echo $rs[nome]?> </option>
                              <?php } ?>
                              <?php  }?>
                            </select>
                              

Detalhe importante:

Usar a função abaixo para capturar a informações.

 

        $PegaVariavel           = explode('|',$_POST[' NomeVariavel ']);
        $MostraInformacao = $ PegaVariavel [0];

        Se for busca o nome troque por $PegaVariavel[1];

 

boa sorte a todos e mais uma vez agradeço.

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.