Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP e MySQL - Como mostrar o valor selecionado no menu suspenso


Seu maior problema é que você está acessando os valores do banco de dados incorretamente. mysql_fetch_array() não retorna um objeto. Ele retorna uma matriz. Então você usa a sintaxe de array ($rows['key'] ) não sintaxe de objeto ($rows->key ).

Apenas verifique se o valor da opção corresponde ao valor de $rows['agama'] . Em caso afirmativo, adicione o selected atributo.
<select name="agama" id="agama">
    <option value="Islam"<?php if ($rows['agama'] === 'Islam') echo ' selected="selected"'>Islam</option>
    <option value="Khatolik"<?php if ($rows['agama'] === 'Khatolik') echo ' selected="selected"'>Khatolik</option>
    <option value="Protestan"<?php if ($rows['agama'] === 'Protestan') echo ' selected="selected"'>Protestan</option>
    <option value="Hindu"<?php if ($rows['agama'] === 'Hindu') echo ' selected="selected"'>Hindu</option>
    <option value="Buddha"<?php if ($rows['agama'] === 'Buddha') echo ' selected="selected"'>Buddha</option>
    <option value="Lain-Lain"<?php if ($rows['agama'] === 'Lain-Lain') echo ' selected="selected"'>Lain-Lain</option>
</select>

Uma maneira ainda melhor seria colocar todas as suas opções em uma matriz e percorrê-las para gerar suas opções. Em seguida, você pode verificar seus valores enquanto percorre-os. Isso seria menos código e mais fácil de manter.
<select name="agama" id="agama">
<?php
$agamas = array('Islam', 'Khatolik', 'Protestan', 'Hindu', 'Buddha', 'Lain-Lain');
foreach ($agamas as $agama) {
      $selected = ($rows['agama'] === $agama) ? ' selected="selected"' : '';
?>
    <option value="Islam"<?php echo $selected; ?>>Islam</option>
<?php
}
?>
</select>

Para corrigir o problema da área de texto, <textarea> não tem um value atributo. Você precisa colocar o conteúdo entre o <textarea></textarea> Tag:
<textarea id="alamatkorban" rows="5" name="alamatkorban" cols="33"><?php echo $rows['alamatkorban'] ;?></textarea>