<select>
データベースの配列を使用するために要素に動的にデータを入力するために使用している関数を変更しようとしています。元の関数は、ハードコードされた配列を使用して要素にデータを入力し、db値に一致するオプションを事前に選択しました。
改訂された関数は要素を作成しますが、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>