Jump to content
gersonab

update select option com dados do banco

Recommended Posts

bom dia.

estou com um problema aqui, quando vou fazer update de uma página com dados vindos do banco os select option mostra os dados corretamente porém os value capturados não estão corretos, um exemplo, se for de cidades vem no value somente o primeiro nome da cidade enquanto na exibição do nome vem completo, logo, quando faço o update grava somente o primeiro nome, pois esta se dividindo e criando campos.

<select class="form-control" name="cidade">
  <option value="">-- Selecionar --</option>
  <?php
$curc4 = $pdo->query("SELECT * FROM comarca ORDER BY comarc asc");
while ($lic4 = $curc4->fetch(PDO::FETCH_ASSOC)) {
echo "<option value=".$lic4['comarc']." ".($cidade == $lic4['comarc'] ? "selected":"")." >".$lic4['comarc']."</option>";
} ?> 
</select>

como é mostrado no console:

<option value="ANGRA" dos="" reis="">ANGRA DOS REIS</option>

desde já agradeço ajuda

Share this post


Link to post
Share on other sites

fiz uma modificação, parte do erro sumiu, no entanto o select option me retorna vazio pq esta vindo desta forma conforme o log

<option value="ANGRA DOS REISselected">ANGRA DOS REIS</option>

 

Share this post


Link to post
Share on other sites

Ainda não consigo trazer o option selecionado que esta no BD

echo "<option value=\"".$lic4['comarc']."\" ".($cidade == $lic4['comarc'] ? "selected":"").">".$lic4['comarc']."</option>";

no log

<option value="ANGRA DOS REIS">ANGRA DOS REIS</option>

 

Share this post


Link to post
Share on other sites

outra forma que eu tentei foi :

 <option <?php if($cidade == $lic4['comarc']) {echo 'selected'; } ?> value="<?php echo $lic4['comarc']; ?>"><?php echo $lic4['comarc']; ?></option>

o select option vem com todos os dados do banco normalmente, porém não vem com o dados setado para edição caso necessário, vem em branco, aí tendo que ser refeito, precisando ou não.

nessa situação como exposta no início, se eu trabalhar com o id da tabela comarca, e estiver gravado o id na outra, funciona perfeitamente, mas com nomes não.

echo "<option value=".$lic4['idcomarc']." ".($idcidade == $lic4['idcomarc'] ? "selected":"")." >".$lic4['comarc']."</option>";

mas porque com os nomes não consigo ????

Share this post


Link to post
Share on other sites

resolvi desta forma, vou deixar aqui a solução que encontrei para ajudar quem precise, pode não ser a ideal, mas deu certo aqui.

<label>Comarca </label>
<select class="form-control" name="cidag">
  <option value="">-- Selecionar --</option>
  <?php
$curc4 = $pdo->query("SELECT * FROM comarca ORDER BY comarc asc");
while ($lic4 = $curc4->fetch(PDO::FETCH_ASSOC)) {
$comarc=$lic4['comarc'];
if($cidag == $comarc){
$selected = "selected";
} else {
$selected = " ";
}
?>
  <option value="<?php echo $comarc;?>" <?php echo $selected;?> ><?php echo $comarc;?></option>
<?php } ?> 
</select>

 

Share this post


Link to post
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

  • Similar Content

    • By Diego-SLP
      Boa tarde,
       
      Tenho um while retornando alguns dados do meu banco e gostaria que nessa tabela a ultima linha fosse a soma da coluna, como posso fazer isso ?
       
      Obrigado
    • By Camilavip
      Oi, faço uma consulta no banco de dados para trazer os valores como: Nome, email, telefone, cidade... e se o usuário está ativo ou não
      No campo ativo ele grava 0 se não tiver ativo e 1 se tiver ativo, mas queria que ele trouxesse se for 0 a palavra Não e se for 1 a palavra Sim
      Faço a consulta como abaixo.
      <?php $sql = "SELECT * FROM clientes"; $result = $sqli->query($sql); if ($result->num_rows) { while ($dados = $result->fetch_assoc()) { $id_cliente = $dados['id_cliente']; $cliente = $dados['cliente']; $email = $dados['email']; $ativo = $dados['ativo']; ?> E em seguida apenas chamo os dados.
      <?= $cliente; ?> <?= $email; ?> <?= $ativo; ?> Que me traz os resultados
      Ricardo
      xxxx@xxxx.com
      0 ou 1 de acordo se ele está ativo ou não. Mas aqui eu queria que ele trouxesse de acordo Não ou Sim e não 0 ou 1
    • By Marcos PP
      Tenho uma tabela onde pego todos pedidos realizados no dia, porem mostro todos em uma tabela, ate ai tudo bem, mas o cliente precisa que seja agrupado por quem pediu, vou dar um exemplo,

      Na minha tabela tenho 

      ID_PEDIDO  |  ID_USER_PEDIDO |  PEDIDO
      1                   |   20                           |   524
      5                   |   52                           |   258
      2                   |   35                           |   525
      6                   |   52                           |   253
      3                   |   20                           |   658
      4                   |   20                           |   358

      No resultado me aparece conforme consulta e me mostra todos os pedidos em ordem de pedido
      SELECT * FROM pedidos  ORDER BY ID_PEDIDO ASC
       
      Se eu colocar um GROUP BY ID_USER_PEDIDO vai agrupar os pedidos de acordo com o usuário e mo mostrar apenas 1


      Eu preciso que seja mostrado todos eles porem agrupados na mesma linha da tabela
       
      <table id="datatable1" class="table display responsive "> <thead> <tr> <th class="">ID</th> <th class="">ID do usuario</th> <th class="">Pedido</th> </tr> </thead> <tbody> <?php $sql = "SELECT * FROM pedidos  ORDER BY ID_PEDIDO ASC"; $result = $conn->query($sql); while($row = $result->fetch_assoc()) { ?> <tr> <td><?php echo $row["ID_PEDIDO"];?></td> <td><?php echo $row["ID_USER_PEDIDO"];?></td> <td><?php echo $row["PEDIDO"];?></td> </tr> <?php } ?> </tbody> </table> E que seja exibido conforme esta imagem
       

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.