こんにちは、
前回、配列を使ったリストダウンメニューの作り方を質問させて頂いた者です。
3日前にMySQLの勉強を始めたばかりでそちらも苦戦している段階で、phpもままならない初心者です。
そんな中、今回は
データベース(使っているソフトウェアはphpMyAdmin)
とPHPを連携させて
都道府県のリストダウンメニューの制作に挑戦しています。
現時点のソースは
<?php $area = ""; $area_slc = ""; if(isset($_POST["send"])){ $area = $_POST["area"]; } $sql = "select area_no, area_name from area_list"; $stmt = $con->prepare($sql); $stmt->execute(); $stmt->bind_result($area_no, $area_name); while($stmt->fetch()){ $area_slc .= "<option value=".$area_no.">". $area_name . "</option>"; if(isset($_POST["send"])){ if($area_no == $_POST["area"]){ $area_slc .= ('<option value="' . $area_no . '" selected>' . $area_name . '</option'); } else{ } } } $stmt->close(); ?> <form action="input.php" method="post"> <p class="title">都道府県</p> <select class="form2" name="area"> <option value="">選択してください。</option> <?php echo $area_slc; ?> </select> <br><input class="btn" type="submit" name="send" value="登録"> </form>
といった具合です。
データベースから値を取得し、リストダウンメニューを再現するところまでは
上手くいったのですが、
仮に「岩手県」を選択し、登録ボタンを押すと下記画像のように
選択した項目が重複してしまいました。
ソースの
while($stmt->fetch()){ $area_slc .= "<option value=".$area_no.">". $area_name . "</option>"; if(isset($_POST["send"])){ if($area_no == $_POST["area"]){ **$area_slc .= ('<option value="' . $area_no . '" selected>' . $area_name . '</option');** } else{ } } }
この太字部分で代入してしまっているためであるのはわかるのですが、
上手い解決方法が浮かびません。。。
そもそもこのやり方では無理でしょうか?
回答3件
あなたの回答
tips
プレビュー