设置<select>的值,因为它是已设置的</select>

时间:2014-07-13 15:18:10

标签: php mysql sql

我使用PHP MySQL查询填充选择列表。同时,我还想将select值设置为db中的当前值。它就是这样

1)查询关联的表格,并将<select>与每个条目填充为<option>

2)将<select>值设置为数据库中的当前条目

现在我正在这样做,但是当我查看页面时,<select>只是第一个选项值。

echo '
<select name = "arena" type = "text" value = "'.$row['arena'].'">   ';
                    try{
                            $retrieveArena = $db->prepare("SELECT arena_id AS key1, arena_name AS val1 FROM arenas");
                            $retrieveArena->execute();
                            $retrieveArenaResult = $retrieveArena->fetchAll(PDO::FETCH_ASSOC);
                            if ($retrieveArena->rowCount() > 0){
                                foreach ($retrieveArenaResult as $arena){
                                    echo '<option value = "'.$arena['key1'].'">'. $arena['val1'].'</option>
                                    ';
                                }
                            }else{
                                returnMsg("No arenas found");   
                            }
                        }
                        catch(PDOException $e){
                            echo $e->getMessage();
                        }
    echo '
    </select>';

1 个答案:

答案 0 :(得分:1)

您需要为<option>标记提供正确的selected标记。因此,您需要知道所选的选项应该是什么。然后你可以使用这样的代码来构建选项。

foreach ($retrieveArenaResult as $arena){
  echo '<option value = "' . $arena['key1'] .'"';

  if (this option is selected) {
    echo ' selected';
  }

  echo '>'. $arena['val1'].'</option>
                                   ';
}