php - 在填充时设置 <select> 的值

标签 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>';

最佳答案

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

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

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

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

关于php - 在填充时设置 <select> 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24724159/

相关文章:

php - 无法更改 Magento 安装上的区域设置

mysql - mariadb 中的事件时间表

sql - 将 CASE WHEN 与多个 When 一起使用只会产生 BOOLEAN 值

Mysql,SUM 列和 GROUP BY HOUR

php - 为什么我的事件监听器没有在 Laravel 5 中触发?

php - 在 bash 脚本中运行命令产生错误

php - MySQL 到 HTML 表与 PHP

mysql - 值 = 1 时的 SQL 计数

mysql - 当提供的值不是空字符串时更新 MariaDB 列

Mysql:在 select 语句中创建内联表?