- - PR -
JSPでコンボボックス
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-24 15:31
現在PHPをJavaに移行してます。
その過程で、コンボボックスの処理が思うように行きませんので、みなさんのお力をお貸しください。 下記にPHPのソースと作成中のJavaのソースを書きます。 PHPソース 〜〜〜〜〜〜〜〜〜〜〜〜〜略〜〜〜〜〜〜〜〜〜 <SCRIPT LANGUAGE="JavaScript"> <!-- function ChooseBUILD(f){ f.srcflg.value ="0" f.submit(); } 〜〜〜〜〜〜〜〜〜〜〜〜〜略〜〜〜〜〜〜〜〜 /* 実行 SQL文パース 建物 */ $sql_build = OCIParse($conn, "select tu_room.building,tu_jotaimeisyo.jotainm from tu_room@$acts_sid,tu_jotaimeisyo@$acts_sid where tu_jotaimeisyo.bunruicd='95' and tu_jotaimeisyo.kubuncd = tu_room.building group by tu_room.building,tu_jotaimeisyo.jotainm order by tu_room.building"); /* データベースカラムのディファイン */ OCIDefineByName($sql_build, "BUILDING", &$building); OCIDefineByName($sql_build, "JOTAINM", &$jotainm); /* SQL実行 */ if(!OCIExecute($sql_build)){ db_check_errors($php_errormsg); $ora_err_code = db_error_code(); $ora_err_msg = db_error_msg(); $ora_err_src = db_error_source(); PopUP_ErrMsg(); exit; } print "<td bgcolor=#eeeeff>建 物 </td>"; print "<td bgcolor=#eeeeff><select name=\"build\" onChange=\"ChooseBUILD(this.form);\">\n"; print "<option value=\"\"></option>\n"; /* データフェッチ */ while(OCIFetch($sql_build)){ /* Optionタグの書込み */ if($build == $building) print "<option selected value=\"".$building."\">".$jotainm."</option>\n"; else print "<option value=\"".$building."\">".$jotainm."</option>\n"; } print "</select></td>\n"; 〜〜〜〜〜〜〜〜〜〜〜〜略〜〜〜〜〜〜〜〜〜〜〜 Javaのソース 〜〜〜〜〜〜〜〜〜〜〜〜〜略〜〜〜〜〜〜〜〜〜 <SCRIPT LANGUAGE="JavaScript"> <!-- function ChooseBUILD(f){ f.srcflg.value ="0" f.submit(); } 〜〜〜〜〜〜〜〜〜〜〜〜〜略〜〜〜〜〜〜〜〜 <% //建物取得 Vector Build = new Vector(); //返り値格納配列 String[] hbuilding = new String[10]; //建物コード格納配列 String[] hjotainm = new String[10]; //建物名称格納配列 Build = db.getBuild(conn); //建物コード、建物名称を各配列に格納 String building = ""; String jotainm = ""; int buildingNO = 0; int jotainmNO = 1; int i = 0; while(i < Build.size()/2){ //建物コード格納 //if(i==0){ //hbuilding[i] = ""; //}else{ building = (String)Build.get(buildingNO); hbuilding[i] = building; buildingNO = buildingNO+2; //} //建物名称格納 //if(i==0){ // hjotainm[i] = ""; //}else{ jotainm = (String)Build.get(jotainmNO); hjotainm[i] = jotainm; jotainmNO = jotainmNO+2; //} i++; } %> <td bgcolor=#eeeeff>建物 </td> <td bgcolor=#eeeeff> <select name="build" onChange="ChooseBUILD(this.form)"> <option value=""></option> <% //建物名称展開 String build = ""; int j = 0; for(j=0; j<hbuilding.length; j++){ if(build.equals(hbuilding[j])){ %> <option selected value="<%=hbuilding[j]%>"><%=hjotainm[j]%></option> <% }else{ %> <option value="<%=hbuilding[j]%>"><%=hjotainm[j]%></option> <% } } %> </select> </td> 〜〜〜〜〜〜〜〜〜〜〜略〜〜〜〜〜〜〜〜〜〜〜〜 という感じに作成していますがうまくいきません。 仕様はSelectでイベントをおこし、イベントが起きた時点でのValueを使用して<Option Selected・・・・>にそのValueの内容だけ表示させ、その他は<Option・・・・>に表示させるという感じです。 また、そのValueの内容を違う場所でもつかうようにしたのですが・・・。 アドバイスお願いします。 | ||||
|
投稿日時: 2005-08-24 16:02
こんにちわ。
具体的にどのようにうまく行かないの でしょうか。 Selectでイベントをおこすことがうまくいかない? <Option Selected・・・・>にそのValueの内容だけ表示させ、その他は<Option・・・・>に表示させるのがうまくいかない? また、現状どのように動作してしまっているか。 その辺を明らかにするとわかりやすいかもしれません。 [ メッセージ編集済み 編集者: (株)ぽち 編集日時 2005-08-24 16:02 ] | ||||
|
投稿日時: 2005-08-24 16:14
何がうまくいかないのか自体がよく分かりませんが、とりあえず
この場合の「イベント」というのが何か分からないし、選択された場合にその選択された値だけ表示されている、というのは select tag で表示されるリストボックスの動作そのままなのでは? あと、f.srcflg というのが何か分かりません。 | ||||
|
投稿日時: 2005-08-24 16:45
f.srcflg は無視してください。
やりたいことは、<select>タグのなかの<option・・・>の内容が選択されたと同時に、 その選択された内容のvalueを使用して<option selected・・・>に表示させたいということです。 その時、選択された内容以外は<option・・・>に通常どうり表示させたいのです。 現在、onChange="ChooseBUILD(this.form)が実行されると、アドレスーに内容が表示されています。その内容の一部を使用したいんです。 http://localhost:9080/Kgu_java/kya_0050.jsp?nendo=2005&build=008&room=&srcflg=0&chgflg= のbuild=008だけ使用したいんですが、どうやって取得できるのか・・・ | ||||
|
投稿日時: 2005-08-24 17:40
それはつまり、select云々というよりも
リクエストパラメータの値の取り方がわ からないということでしょうか? request.getParameter("build")ではダメ なのでしょうか? |
1