Votre plus gros problème est que vous n'accédez pas correctement aux valeurs de votre base de données. mysql_fetch_array()
ne renvoie pas d'objet. Il renvoie un tableau. Vous utilisez donc une syntaxe de tableau ($rows['key']
) pas la syntaxe d'objet ($rows->key
).
Vérifiez simplement si la valeur de l'option correspond à la valeur de $rows['agama']
. Si oui, ajoutez le selected
attribut.
<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>
Une meilleure façon serait de mettre toutes vos options dans un tableau et de les parcourir en boucle pour générer vos options. Ensuite, vous pouvez vérifier leurs valeurs au fur et à mesure que vous les parcourez. Ce serait moins de code et plus facile à maintenir.
<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>
Pour résoudre votre problème de zone de texte, <textarea>
n'a pas de value
attribut. Vous devez placer le contenu entre les <textarea></textarea>
balises :
<textarea id="alamatkorban" rows="5" name="alamatkorban" cols="33"><?php echo $rows['alamatkorban'] ;?></textarea>