0

我正在创建一个客户帐户页面,该页面显示数据库中的相关信息并允许客户编辑他们的信息。

下面的代码从数据库中检索并显示客户的帐户信息,并预先选择正确匹配其信息的值。我的问题是特定于 Select 元素的 - 它不是从现有的选择选项中进行选择,而是在数据库中添加一个带有值的额外选择选项,以便数据库中的值显示两次。

编辑 -例如,如果 'gift_privacy' 的 db 值为 'Standard',则选择选项显示为:*Standard、Standard、Gift ID Req、Not_Enrolled* 而不是 *Standard、Gift ID Req、Not_Enrolled*

如何更正此代码以便将selected="selected"其应用于现有选项?

<?php   
try {  
$stmt = $conn->prepare("SELECT * FROM customer_info WHERE user_id = :user_id");  
$stmt->bindValue(':user_id', $user_id); 
$stmt->execute();
}catch(PDOException $e) {echo $e->getMessage();}
$row = $stmt->fetch();
$search = array('_', ',');
$replace = array(' ', ', ');
$rows = str_replace($search, $replace, $row);
?>
<select name="gift_privacy">
<option selected="selected" value="<?php echo $rows['gift_privacy']; ?>"><?php echo $rows['gift_privacy']; ?></option>
<option value="Standard">Standard</option>
<option value="Gift_ID_Req">Require program ID</option>
<option value="Not_Enrolled">Do not enroll</option>
</select>
4

2 回答 2

1

尝试:

<?php
$gifts = array(
    "Standard" => "Standard",
    "Gift_ID_Req" => "Require Program ID",
    "Not_Enrolled" => "Do not Enroll");

$gift = $rows['gift_privacy'];
//$gift = "Gift_ID_Req";
foreach($gifts as $key => $value) {
    if($key == $gift) {
        echo '<option selected="selected" value="'. $key .'">'. $value .'</option>';
    } else {
        echo '<option value="'. $key .'">'. $value .'</option>';
    }
}
?>

代替:

<option selected="selected" value="<?php echo $rows['gift_privacy']; ?>"><?php echo $rows['gift_privacy']; ?></option>
<option value="Standard">Standard</option>
<option value="Gift_ID_Req">Require program ID</option>
<option value="Not_Enrolled">Do not enroll</option>

当然,有多种方法可以给猫剥皮,您可以检查是否$rows['gift_privacy']与每行上的当前选项匹配。

于 2013-02-12T04:14:58.127 回答
1

试试这个 。这是解决您问题的简单方法。

<select name="gift_privacy">
<option value="Standard" <?php if($rows['gift_privacy']=='Standard') echo "selected='selected'"; ?>>Standard</option>
<option value="Gift_ID_Req" <?php if($rows['gift_privacy']=='Gift_ID_Req') echo "selected='selected'"; ?>>Standard</option>
<option value="Not_Enrolled" <?php if($rows['gift_privacy']=='Not_Enrolled') echo "selected='selected'"; ?>>Standard</option>
</select>
于 2013-02-12T04:59:03.970 回答