dポイントプレゼントキャンペーン実施中!

こんにちは。
たびたびすみません・・・・。
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

A 回答 (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から
再取得を行った方が確実だと思います。
    • good
    • 0
この回答へのお礼

LancerVIIさま。

いつも、ご指導ありがとうございます。

とてもわかり易く説明して頂いたので、
なぜ出来なかったかと言う事と、どうしたら
表示されるようになるのかがキチンと
わかりました。

PS
先日、PHPポケットリファレンスを購入しようと
近所の本屋さんに行ったのですが4しかなくって_| ̄|○
今私はPHP5を使っているのですが、4の本でも
良いのでしょうか・・・?

お礼日時:2005/02/21 00:36

こんにちは。



関数を調べるには4の本でも十分
役立つとは思いますが、どうしても
上位が強くなってしまいますので微妙に
違う部分が出てくるかもしれません。

5の本が出るのを待った方がいいかもしれませんが
雰囲気をつかむために4のを買ってみて
いろいろ見てみるといいかもしれません。
    • good
    • 0
この回答へのお礼

なるほど。
5が出るまで、せめてよく使われる関数を
覚える為にも、4の本を購入いたします。

いつも、ご親切にありがとうございます。

お礼日時:2005/02/21 19:20

ソースがいまいちわからないのですが、



$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で渡してやらなければ表示しませんが、渡していますか?
    • good
    • 0
この回答へのお礼

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"; ?>

にしたら、エラーが出なくなって望みどおりの
表示がでるようになりました♪

ありがとうございました。

お礼日時:2005/02/21 00:25

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