プロが教えるわが家の防犯対策術!

ちょっと急ぎです。
言語:PHP
DB:MySQL

DB1から値を持ってきてプルダウンで表示させて、送信したときにDB2に値が入り、次のページで送信したデータが選択されているようにしたいです。
データベースから値をとってきてプルダウンで表示させるコードの上に<option value="$**" >$**</option>を書けば何を送信したかわかりますが、上に表示するのでないです。
※イメージ添付します。

「プルダウンでデータ送信後、値選択状態にし」の質問画像

質問者からの補足コメント

  • 現状のサンプルコードです。
    (DB2接続文書く)
    <select name="name">
    //DB2に入ってる最新データを表示
    <option value="<?php $name ?>"><?php $name ?></option>
    <?php
    (DB1接続文書く)
    //DB1に入ってるデータを全部表示
    $result = mysql_query("SELECT name FROM test",$cn);
    $i=0;
    while($row = mysql_fetch_array($result))
    {
    $name = $row["name"];
    ?>
    <option value="<?php echo $name; ?>"><?php echo $name; ?></option>
    <?php
    $i++;
    }
    mysql_close($cn);
    ?>
    </select>

      補足日時:2017/06/03 11:18

A 回答 (1件)

まずmysql_系の関数はそろそろやめましょう。


すでにサポートが終了しています
つぎに「name」のような勘違いしそうなパラメータ渡しは
ご自身のためになりません。もっとわかりやすいものに変えたほうがいいでしょう
またdbから受け取ったデータをhtmlで出力する際はかならずエスケープ処理が必要です

そのうえで
$name=filter_input(INPUT_POST,"name");
だとして、いかのような感じ
while($row = mysql_fetch_array($result)){
print '<option value="'.htmlspecialchars($row["name"]).'"'
print $name==$row["name"]?" selected":"";
print '>';
print htmlspecialchars($row["name"]);
print '</option>';
}
    • good
    • 1
この回答へのお礼

詳しく書いてくださり、ありがとうございます。

お礼日時:2017/06/08 11:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!