PHP& MySQL - 如何在下拉菜单上显示选定的值 [英] PHP & MySQL - How to Show Selected value on Dropdown Menu
问题描述
我制作edit.php,以MySQL的形式显示所有数据。
所有数据均以正确的形式显示,但不适用于下拉菜单和textarea。
我需要帮助,这是我的代码
< form method =postaction =editdata .PHP>
<?php
包含'config.php';
$ id = $ _GET ['id'];
$ sqlTampil =select * from data_korban where kasus_id = $ id;
$ qryTampil = mysql_query($ sqlTampil);
$ dataTampil = mysql_fetch_array($ qryTampil);
?>
下拉值仍然是默认值,而非选定值,而TextArea则为空白
< select name =agamaid =agamavalue =<?php echo $ rows - > agama;?>>
< option value =伊斯兰教>伊斯兰教< / option>
< option value =Khatolik> Khatolik< / option>
< option value =Protestan> Protestan< / option>
< option value =Hindu>印度教< / option>
< option value =佛>佛< / option>
< option value =Lain-Lain> Lain-Lain< / option>
< / select>
< textarea id =alamatkorbanrows =5name =alamatkorban
value =<?php echo $ rows - > alamatkorban;?>
cols =33>
< / textarea>
感谢您的帮助
你最大的问题是你正在错误地访问你的数据库值。 mysql_fetch_array()
不返回对象。它返回一个数组。所以你使用数组语法( $ rows ['key']
)不是对象语法( $ rows-> key
)。
只要检查选项值是否与 $ rows ['agama']
的值匹配。如果是这样,添加选定的
属性。
< select name = agamaid =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< /选项>
< / select>
更好的方法是将所有选项放在数组中并循环遍历它们以生成你的选择。然后你可以检查他们的值,当你循环他们。
< select name =agamaid =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; ?>>伊斯兰< /选项>
<?php
}
?>
< / select>
要解决您的textarea问题,< textarea>
没有值
属性。您需要将内容放置在< textarea>< / textarea>
标签之间:
< textarea id =alamatkorbanrows =5name =alamatkorbancols =33><?php echo $ rows ['alamatkorban'];?>< / textarea的>
I make edit.php with show all data in form from MySQL.
All data is show on form rightly, but it's not work on dropdown and textarea.
I need help and this is my code
<form method="post" action="editdata.php">
<?php
include 'config.php';
$id = $_GET['id'];
$sqlTampil = "select * from data_korban Where kasus_id=$id";
$qryTampil = mysql_query($sqlTampil);
$dataTampil = mysql_fetch_array($qryTampil);
?>
Dropdown value is still default, not selected value and TextArea is blank
<select name="agama" id="agama" value="<?php echo $rows -> agama;?>">
<option value="Islam">Islam</option>
<option value="Khatolik">Khatolik</option>
<option value="Protestan">Protestan</option>
<option value="Hindu">Hindu</option>
<option value="Buddha">Buddha</option>
<option value="Lain-Lain">Lain-Lain</option>
</select>
<textarea id="alamatkorban" rows="5" name="alamatkorban"
value="<?php echo $rows -> alamatkorban;?>"
cols="33">
</textarea>
Thank You for Your Help
Your biggest issue is you are accessing your database values incorrectly. mysql_fetch_array()
does not return an object. It returns an array. So you use array syntax ($rows['key']
) not object syntax ($rows->key
).
Just check to see if the option value matches the value of $rows['agama']
. If so, add the selected
attribute.
<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>
An even better way would be to put all of your options in an array and loop through them to generate your options. Then you can check their values as you loop through them. This would be less code an easier to maintain.
<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>
To fix your textarea issue, <textarea>
does not have a value
attribute. You need to place the content in between the <textarea></textarea>
tags:
<textarea id="alamatkorban" rows="5" name="alamatkorban" cols="33"><?php echo $rows['alamatkorban'] ;?></textarea>
这篇关于PHP& MySQL - 如何在下拉菜单上显示选定的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!