• 締切済み

セレクトボックスでの選択した値をDBに挿入する方法

授業評価アンケートのデータ収集システムを卒研で開発しています。 phpとmysqlを利用して開発したいと思っています。 その一部で、年度や学年やクラスなどをセレクトボックスで選択させたいと思っています。 表示するだけであれば、 年度: <SELECT name="nendo"> <OPTION value="1">2006</OPTION> <OPTION value="2">2007</OPTION> <OPTION value="3">2008</OPTION> <OPTION value="4">2009</OPTION> <OPTION value="5">2010</OPTION> <OPTION value="6" selected>2011</OPTION> <OPTION value="7">2012</OPTION> </SELECT> で出来ますが、 後々データベースに「2006」などの文字列を挿入したいのですが、方法がわかりません。 どなたか詳しく教えてください!

みんなの回答

回答No.4

こんばんは。 あんまり難しく考えずに、hiddenで渡せばいいんじゃないの? submitをやめてbuttonにし、 onclickでjavascriptを呼んで、 その中でhiddenに突っ込んでからsubmitすればいいだけだと・・・。 ナンボでも渡せますが・・・?

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

> hiddenでページをまたいだデータと、そのページで入力したもの、同じタイミングでDBに挿入することは可能でしょうか? んー、何か勘違いをされているような、深く考えすぎのような気もしないでもないです。 一般的なネットなら、基本は「リクエスト&レスポンス」です。 ブラウザからのリクエストに対し、サーバーがレスポンスを返してあげる事で1つのターンが完結です。 今回の場合も、<form>からのデータはリクエストという形で送られます。 厳密に言うとこれだけではないのですが、PHP側で print_r($_REQUEST); とやると分かります。 その時点でPHPで持ってる(受け取っている)データなら そのタイミングでDBに挿入可能です。 基本的にセッションでも使わない限りは、データは一度限りで消えますので、ページ遷移をしてもデータを保持したいのならhiddenで持ち回すなりする必要があるというのは、既にご存知かとは思います。 かなり大雑把に言うと、その時点で、$_REQUEST で受け取ってるデータなら DBに挿入できるよ。って事です。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

んー、俺なら <option>のvalue の値を そのまま value=2006 とかにしちゃいますけど、まぁ、何か理由があって この形なんだろうな~と。 > このプログラムでDBに挿入することができるのしょうか?? ??? 少なくとも そちらが提示したソースでも、yambejp さんが書かれたソースでも、DBに関する記述は全く存在しないので、無理です。 この他に、DBの接続とテーブルへのinsertに関して書かないといけません。

y_okamoto_2918
質問者

お礼

お察しの通り、理由があってです。 年度についてはvalue=2006としても良いですが、 分類:一般科目、専門科目 のような、漢字ばかりのテキストボックスもあります。 それについては、value=1~・・・ でやっています。 value については 1,2,・・・のように統一しようと思いまして。 hiddenでページをまたいだデータと、そのページで入力したもの、 同じタイミングでDBに挿入することは可能でしょうか? ありがとうございます。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

1が2006であるという紐づけをしなくてはいけません。 配列で処理すればよいでしょう。 <form> <SELECT name="nendo"> <OPTION value="1">2006</OPTION> <OPTION value="2">2007</OPTION> <OPTION value="3">2008</OPTION> <OPTION value="4">2009</OPTION> <OPTION value="5">2010</OPTION> <OPTION value="6" selected>2011</OPTION> <OPTION value="7">2012</OPTION> </SELECT> <input type="submit" value="go"> </form> <?PHP $nendo_array=array(1=>"2006",2=>"2007",3=>"2008",4=>"2009",5=>"2010",6=>"2011",7=>"2012"); if(in_array($_REQUEST["nendo"],array_keys($nendo_array))) print $nendo_array[$_REQUEST["nendo"]]; ?>

y_okamoto_2918
質問者

お礼

ありがとうございます!! このプログラムでDBに挿入することができるのしょうか??

専門家に質問してみよう