- ベストアンサー
DBに入力されている値のセレクトフォームを受け取りたいです
こんにちは。 たびたびすみません・・・・。 MySQLのテーブルの顧客名をセレクトメニューで 表示できて大喜びしていたのですが・・・。 【登録】→【確認】→【MySQLの該当テーブルに保存】 としたいのです。 テキストエリアで入力した項目は、【確認】画面で <?php echo htmlspecialchars($_POST["siire_no"]) ?> と入力すると、ちゃんと表示されるのですが・・・。 先日教えて頂いた、テーブルからセレクトメニューを作る コードを使わせて頂いて $res=mysql_query("select * from kokyaku"); while ( $rows=mysql_fetch_array($res) ) { print "<option value=\"".$rows['kokyaku_id']."\">".$rows['kokyaku_name']."\n"; } と書いて、【確認】画面で <?php echo htmlspecialchars($_POST["kokyaku_id"]) ?> とすると、顧客テーブルで指定していた、顧客の番号が 表示されます。 これを、siireテーブルに保存するときの顧客情報 フィールドには、顧客番号で入れたいけれども、 【登録確認】画面では、番号ではなく、顧客名を 表示させたい場合は、どのように記述すれば よいのでしょうか・・・・。 ためしに、 <?php echo htmlspecialchars($_POST["kokyaku_name"]) ?> と書いてみたりしたのですが 【確認】画面で、顧客の欄だけ何も出なくなったり してしまいました。 どうかご指導よろしくお願いいたします。 使用環境:PHP5+MySQL4+Apache
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 print "<option value=\"".$rows['kokyaku_id']."\">".$rows['kokyaku_name']."\n"; ここで生成されたHTMLを見てみるとわかると思いますが、 <select name="kokyaku"> <option value="0001">顧客1 <option value="0002">顧客2 <option value="0003">顧客3 </select> と生成されていると思います。 すると、実際送信されるのはvalueに設定されている 値が送信されます。 なので、顧客IDは取得できるけど顧客名は取得 出来ません。 >これを、siireテーブルに保存するときの顧客情報 >フィールドには、顧客番号で入れたいけれども、 >【登録確認】画面では、番号ではなく、顧客名を >表示させたい場合は、どのように記述すれば >よいのでしょうか・・・・。 この場合は受け取った顧客IDを使用してDBより 再取得します。 取得した顧客名を表示に使い、次の登録処理には 顧客IDをsubmitします。 またはJavaScriptでselectで選択された 顧客名を同時に送信することも可能ですがDBから 再取得を行った方が確実だと思います。
その他の回答 (2)
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 関数を調べるには4の本でも十分 役立つとは思いますが、どうしても 上位が強くなってしまいますので微妙に 違う部分が出てくるかもしれません。 5の本が出るのを待った方がいいかもしれませんが 雰囲気をつかむために4のを買ってみて いろいろ見てみるといいかもしれません。
お礼
なるほど。 5が出るまで、せめてよく使われる関数を 覚える為にも、4の本を購入いたします。 いつも、ご親切にありがとうございます。
- moon_night
- ベストアンサー率32% (598/1831)
ソースがいまいちわからないのですが、 $sql = "select * from kokyaku where kokyaku_id = '" .$_POST['kokyaku_id']) ."'"; $res=mysql_query($sql); $rows=mysql_fetch_array($res); print $rows['kokyaku_name']."\n"; とすれば表示されると思います。 $_POST["kokyaku_name"] で表示させるには kokyaku_name をPOSTで渡してやらなければ表示しませんが、渡していますか?
お礼
moon_nightさま。 こんばんは。 ご指導、ありがとうございました。 教えて頂いたコードを記入すると Parse erroが出てしまって(泣) エラーが出るからと、すぐにこちらでお伺い するばかりでは成長しないかなと思いまして 一日悩んであれこれいじくってみたのです。 <? $sql = "(select * from kokyaku where kokyaku_id = '".$_POST["kokyaku_id"] ."')"; $res=mysql_query($sql); $rows=mysql_fetch_array($res); print $rows['kokyaku_name']."\n"; ?> にしたら、エラーが出なくなって望みどおりの 表示がでるようになりました♪ ありがとうございました。
お礼
LancerVIIさま。 いつも、ご指導ありがとうございます。 とてもわかり易く説明して頂いたので、 なぜ出来なかったかと言う事と、どうしたら 表示されるようになるのかがキチンと わかりました。 PS 先日、PHPポケットリファレンスを購入しようと 近所の本屋さんに行ったのですが4しかなくって_| ̄|○ 今私はPHP5を使っているのですが、4の本でも 良いのでしょうか・・・?