2012-03-02 62 views
0

我有一個關於選擇框的問題,我有一個選擇框在客戶端account.php與國家/省份列表,我已經有其他領域,如地址,名稱,電子郵件等關於PHP selectbox

我有一個數據庫中稱爲狀態那個用戶狀態信息存儲在我按下更新帳戶時,一切都完美更新,但我想確保我的選擇框保持選擇,只要用戶點擊更新按鈕,當他們當我現在選擇我的狀態並更新時,它會在db中更新,但在頁面上當我登錄到第一個選項框時,logback會保持選中狀態

任何簡單的例子,我可以這樣做太棒了!

<?php public function getUserData() { 
    global $db, $core; 
    $sql = "SELECT *, DATE_FORMAT(created, '%a. %d, %M %Y') AS cdate," . "\n DATE_FORMAT(lastlogin, '%a. %d, %M %Y') AS ldate" . "\n FROM " . $this->uTable . "\n 
      WHERE id = '" . $this->uid . "'"; 
    $row = $db->first($sql); 
    return ($row) ? $row : 0; 
} ?> 

<?php $row = $user->getUserData(); ?> 
<select name="state" id="state"> 
    <?php $state = $row['state'];?> 
    <option value="Ontario" <?php if($state == "Ontario") echo "SELECTED" ?>>Ontario</option> 
    <option value="Alberta" <?php if($state == "Alberta") echo "SELECTED" ?>>Alberta</option> 
</select> 

回答

0

而是呈現幾個<option>標籤,它可能更容易使用循環。這使得維護工作更容易。 (您也可以從數據庫中檢索狀態列表。)

<?php 
$states = array('Ontario' => 'Ontario', 'Alberta' => 'Alberta'); 
$row = $user->getUserData(); 
$state = $row['state']; 
?> 
<select name="state" id="state"> 
    <?php foreach($states as $shortName => $displayName):?> 
     <option value="<?=$shortName;?>" <?php if($shortName == $state) echo "SELECTED" ?>><?=$displayName;?></option> 
    <?php endforeach;?> 
</select> 
+0

謝謝,很棒的輸入! – user622639 2012-03-02 18:26:36