PHP& MySQL - 如何在下拉菜单上显示选定的值 [英] PHP & MySQL - How to Show Selected value on Dropdown Menu

查看:193
本文介绍了PHP& MySQL - 如何在下拉菜单上显示选定的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我制作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&amp; MySQL - 如何在下拉菜单上显示选定的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆