0

このコードは selected=selected を関連するオプションにエコーする必要がありますが、選択した値が強調表示されていないか、ソース コードで 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();
?>
<select name="gift_privacy">
<option value="Standard" <?php if($row['gift_privacy']=='Standard') echo "selected='selected'"; ?>>Standard</option>
<option value="Gift ID Req" <?php if($row['gift_privacy']=='Gift_ID_Req') echo "selected='selected'"; ?>>Require program ID</option>
<option value="Not Enrolled" <?php if($row['gift_privacy']=='Not_Enrolled') echo     </select>

の結果var_dump($row);:

["gift_privacy"]=> string(12) "Not Enrolled"

ソースコード

<select name="gift_privacy" style="width:12em;">
<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

4

あなたの状態は:

if($row['gift_privacy']=='Not_Enrolled')

ただし、文字列は「登録されていません」(アンダースコアなし) です。条件を変更してアンダースコアを削除するか、返される値をアンダースコアに変更してください。

于 2013-02-12T21:32:16.990 に答える
3

あなたの if ステートメントは と言い$row['gift_privacy']=='Not_Enrolled'ますが、var_dump の出力は と言っています["gift_privacy"]=> string(12) "Not Enrolled"。Not と Enrolled の間のアンダースコア (_) に注意してください。

于 2013-02-12T21:32:23.293 に答える