如何显示以前选择的下拉值

问题描述 投票:0回答:1

我是一个 PHP 新手所以希望我的问题很容易理解。

我正在尝试从我的编辑/更新页面的下拉菜单中显示先前选择的选项。下拉菜单显示我从名为“团队”的表中获取的所有团队。我从不使用此表将数据插入 - 仅从中获取数据。

team

|id|name |
|--| --- |
|1 | MTL |
|2 | BOS |
|3 | CGY |
|4 | EDM |

还有一个名为“crud”的第二个表,我所有的提交结果都被插入到其中。 'home' 和 'away' 选项卡显示来自 'team' 表的球队 ID。例如在第 1 行,主队是 CGY,客队是 MTL:

crud

|id|game#|home|away|goalsHome|goalsAway
|1 | 1   |3   |1   |         |
|2 | 2   |1   |2   |         |
|3 | 3   |2   |4   |         |
|4 | 4   |4   |3   |         |
|5 |     |    |    |         |

目前,当我单击更新按钮时,它会将我重定向到 update.php,我可以在其中提交所有更改。一切正常,但它始终显示所选的默认选项,而不是显示先前选择的值。

因为这个下拉列表是从我的团队表中获取数据来显示选项,所以我很难在不弄乱选项的情况下显示之前选择的值。

这就是我的主页选项代码目前的样子:

   <select name="home" type="text" id="" value="">

<?php
$query = "SELECT * FROM team";
$result = $con->query($query);
if ($result->num_rows > 0) {
    while ($row = mysqli_fetch_assoc($result)) {

?> 
 <option value="<?php echo $row['id']; ?>"selected="selected"><?php echo $row['name']; ?></option>
<?php
    }
}

?>
   </select>
    <label>Home Team</label>

如您所见,我的查询是从“团队”表中获取所有团队,以显示为选项。这很好,但是当我尝试使用 join 显示先前选择的值时,它不再显示“团队”中的所有团队,而是只会显示两个团队(以最近“crud”记录中的哪个团队为准)。这是我的代码,仅更改主队选项的查询:

$query = "SELECT * FROM team
INNER JOIN crud ON crud.home=team.id";

我需要它从表“crud”中获取先前选择的数据,然后保留从表“team”中选择的选项。所以我觉得我走在正确的轨道上,加入声明很可能是去这里的方式。

非常感谢任何帮助或指导。我找到了很多其他资源来实现选项中的手动输入,但不是从数据库中的不同表中获取选项时。

CODE(同上)

   <select name="home" type="text" id="" value="">

<?php
$query = "SELECT * FROM team";
;
$result = $con->query($query);
if ($result->num_rows > 0) {
    while ($row = mysqli_fetch_assoc($result)) {

?> 
 <option value="<?php echo $row['id']; ?>"selected="selected"><?php echo $row['name']; ?></option>
<?php
    }
}

?>
   </select>
    <label>Home Team</label>

$query = "SELECT * FROM team
INNER JOIN crud ON crud.home=team.id";
php join dropdown display selected
1个回答
0
投票

假设您正在编辑 id=1 的 crud 表记录,那么对于“主字段”:

你应该换线

<option value="<?php echo $row['id']; ?>"selected="selected"><?php echo $row['name']; ?></option>

类似以下内容

 <option value="<?php echo $row['id']; ?>"

<?php if ($row["id"]==$row0["home"]) { echo " selected "; } ?>
    ><?php echo $row['name']; ?></option>

所以代码将是

<?php

$query0 = "SELECT * FROM crud where id=1";
$result0 = $con->query($query0);
$row0 = mysqli_fetch_assoc($result0)

<select name=home>

$query = "SELECT * FROM team";
$result = $con->query($query);
if ($result->num_rows > 0) {
    while ($row = mysqli_fetch_assoc($result)) {
?> 

 <option value="<?php echo $row['id']; ?>"
<?php if ($row["id"]==$row0["home"]) { echo " selected "; } ?>
    ><?php echo $row['name']; ?></option>

<?php
    }
}

?>
   </select>

© www.soinside.com 2019 - 2024. All rights reserved.