Array
(
)

List box ou Radio

PHP
Marcelo Xavier
   - 31 ago 2013

Bom dia amigos,

Estou com um probleminha que não estou conseguindo resolver.

Tenho um list box, que grava perfeitamente no BD as informações, mas quando retorno para alterar ele sempre lista o primeiro e não o que está gravado no BD.

Ele lista 3 bancos, e o valor no BD é 1 para o BRADESCO, 2 para o ITAÚ e 3 para o SANTANDER
Então queria quando eu fosse editar o cadastro, que no caso se tinha cadastrado o Itaú, volte o itaú. Mas no primeiro exemplo abaixo ele sempre volta o BRADESCO que é o primeiro, e no segundo exemplo ele retorna sempre o SANTANDER.
No input normal de text eu gravo e na consulta ou edição o resultado do BD vem normalmente, abaixo como está gravando e trazendo o resultado.
<tr>
<td width="110">NOME:</td>
<td width="190"><input name="form_nome" type="text" value="<?=@mysql_result($sql,0,nome)?>" size="60"></td>
</tr>

Nos select tipo list box tentei dessa forma abaixo
Ele volta sempre o primeiro resultado

<tr>
<td><div align="left" class="style2"><strong>BANCOS: </strong></div></td>
<td><div align="left" class="style2">
<label>
<select name="form_banco" id="form_banco" selected="selected">
<option value="1">1 - BRADESCO</option>
<option value="2">2 - ITAÚ</option>
<option value="3">3 - SANTANDER</option>
</select>
</label>
</div></td>
</tr>

E também dessa forma abaixo, que ele sempre retorna o terceiro resultado.

<tr>
<td><div align="left" class="style2"><strong>BANCOS: </strong></div></td>
<td><div align="left" class="style2">
<label>
<select name="form_banco" id="form_banco" selected="selected">
<option selected="selected" value="1">1 - BRADESCO</option>
<option selected="selected" value="2">2 - ITAÚ</option>
<option selected="selected" value="3">3 - SANTANDER</option>
</select>
</label>
</div></td>
</tr>

Como disse, ele grava perfeitamente no BD, e quando edito também, mas não retorna no list box o valor que está gravado no BD.

Também tentei via radio como está abaixo. grava normalmente no BD, mas também retorna vazio todos os radios, não voltando o resultado que está no BD.
Qualquer uma das alternativas me ajuda

<td>BANCOS:</td>

<input type="radio" name="form_banco" id="form_banco" checked="checked" value="1" <?php if($dados['banco']=='1');?> />BARDESCO</td>

<input type="radio" name="form_banco" id="form_banco" checked="checked" value="2" <?php if($dados['banco']=='2');?> />ITAÚ</td>

<input type="radio" name="form_banco" id="form_banco" checked="checked" value="3" <?php if($dados['banco']=='3');?> />SANTANDER</td>
</tr>

Rumao
   - 04 set 2013

Boa tarde, eu geralmente faço assim:
Declaro esta função:
#Código

<?php
    function selected( $value, $selected ){
    return $value==$selected ? ' selected="selected"' : '';
 }


E então uso ela em cada um dos meus options:

#Código
<select name="sexo">
    <option value="">Escolha</option>
    <option value="masculino"<?php echo selected( 'masculino', $sexo ); ?>>Masculino</option>
    <option value="feminino"<?php echo selected( 'feminino', $sexo ); ?>>Feminino</option>
</select>


Veja se isso lhe ajuda.

Marcelo Xavier
   - 05 set 2013

Infelizmente não, ele faz exatamente o que eu o que eu já tinha estava fazendo. Grava os dados, mas quando volto ao cadastro para consultar ou mesmo para editar ele volta ao "escolha" mesmo no BD tendo sido gravado corretamente.