我正在尝试修改我一直用来动态填充<select>
元素以使用数据库中的数组的函数。原始函数使用硬编码数组来填充元素,并预先选择与 db 值匹配的选项。
修改后的函数创建了元素,但它只添加了数据库中的第一个值。我怎样才能修改它,以便它循环遍历所有应该添加到<select>
元素的值?
PHP 函数和查询
<?php
function printSelectOptions($dataArray, $currentSelection) {
foreach ($dataArray as $key => $value) {
echo '<option ' . (($key == $currentSelection)) . ' value="' . $key . '">' . $value . '</option>';
}
}
try {
$stmt = $conn->prepare("SELECT * FROM student");
$stmt->execute();
}catch(PDOException $e) {
echo $e->getMessage();
}
$row = $stmt->fetch();
?>
填充选择元素
<select name="fname">
<?php
echo printSelectOptions(array($row['fname']));
?>
</select>
填充元素的原始函数和代码
function printSelectOptions($dataArray, $currentSelection) {
foreach ($dataArray as $key => $value) {
echo '<option ' . (($key == $currentSelection) ? 'selected="selected"' : '') . ' value="' . $key . '">' . $value . '</option>';
}
}
<select name="fname">
<?php
$options = array("John"=>"John", "Mary"=>"Mary", "Elizabeth"=>"Elizabeth");
$selected = $row['fname'];
echo printSelectOptions($options, $selected);
?>
</select>