PHP - 输出和填充下拉框使用 while 循环,在回显内


PHP - output and populate dropdown box using while loop, inside echo

我有一个php'update'页面,在其中我使用现有的数据库记录将字段数据加载到各自的输入字段中,如果用户愿意,可以对其进行编辑。其中大多数都显示在文本框中,这工作正常,包括单个 echo 语句中的 HTML 和 PHP,如下所示:

<?php echo"<input type='"text'" name='"age'" value='"{$age}'" class='"textbox'"><br>"?>

我遇到的问题是在尝试使用 PHP 在下拉框中填充和设置初始值时尝试使用类似的方法。下面是关联的代码:

$query = "SELECT raceID, RaceName FROM races";
$result = $conn->query($query);
<?php echo
"<select value='"{$racingIn}'">
while ($rowRace = $result->fetch_assoc()){
//add all rows in database collection to dropdown box for selection
<option name='"racingIn'" value='"{$rowRace['raceID']}'">{$rowRace['RaceName']}</option>;
}
</select><br>"
?>

它几乎可以工作,但我在页面加载时不断收到错误,告诉我$rowRace变量未定义。我知道情况并非如此,因为它在程序的其他地方使用并且工作正常,直到最初的 2 个单独的 PHP 跨度合并为一个。我认为这可能与 PHP 变量周围缺少{}括号有关。

对此的任何建议,无论是修复现有方法还是建议更简单的方法,都将不胜感激。

谢谢马克

尝试如下:-

<select name="race">
<?php
while ($rowRace = $result->fetch_assoc()){
//add all rows in database collection to dropdown box for selection
?>
<option name="racingIn" value="<?php echo $rowRace['raceID'] ?>"><?php echo $rowRace['RaceName']; ?></option>
<?php
} ?>
</select>

假设有一个变量$selectedRaceID具有选定的"raceID"值(类似于上面的$age(:

echo '<select name="race">';
while ($row = $result->fetch_assoc()) {
    echo '<option value="'. $row['raceID'] .'"';
    echo ($selectedRaceID == $row['raceID']) ? ' selected' : '';
    echo '>'. $row['RaceName'] .'</option>';
}
echo '</select>';

我还使您的HTML有效(例如,SELECT不能具有VALUE属性(。