2012-03-02 34 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