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

时间:2016-02-17 17:50:13

标签: php html while-loop echo

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

<?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>"
?>

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

对此有任何建议,无论是修复现有建议还是建议采用更简单的方法,都会受到大力赞赏。

谢谢, 标记

2 个答案:

答案 0 :(得分:1)

试试这样: -

<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>

答案 1 :(得分:0)

假设有一个带有所选&#34; raceID&#34;的变量$selectedRaceID。值(类似于上面的$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属性)。