ネットが遅くてイライラしてない!?

いつもお世話になっております。
プログラム初心者ですが、どうしても方法がわからないので質問させていただきます。

サーバー側 ASP(VBS) クライアント側 html javascriptで作成しているのですが、
プルダウンを選択すると、そのテーブルの列にある値をテキストボックスにいれたいと思っています。


例えば、以下のようなテーブルがあって、

法人コード | 会社コード | 法人名
------------------------------
   1    |   aa    | トヨタ
------------------------------
   2    |   bb    | ニッサン
------------------------------
   3    |   cc    | ホンダ


データベースから読み込んで、法人コードをプルダウンにセットします。
プルダウンが選択されると、その列の会社コードと法人名をテキストエリアに出力したいと思います。

※例 法人コード「1」をプルダウンで選択すると、「aa」と「トヨタ」がテキストエリアに表示される。



連動プルダウンで、直接option value部分に書けばできそうですが、
データの量が膨大な為、直接コードに書くのは難しそうです。



form action で、1度別のベージに飛ばして、
そこで、SQL文にて、法人コードを条件にして出力しようともしましたが、
全体がformで囲まれているので、formの入れ子になりできませんでした。



おそらくjavascriptで、select部分で、onchange="Selc(this)"とすれば、
その処理を行うと思うのですが、処理自体の書き方がわかりません。


プルダウン部分に法人コード一覧を表示させることは、できましたが、
その後の処理の書き方がわかりませんので、
ご存知の方がいらっしゃいましたら、ご回答宜しくお願いします。


一部ソースを載せます。


<%
' データベース接続の確立
Set Conn = ConnectDB(DSN)

' 法人マスタテーブルから値を取得

SQL = "Select 法人コード,会社コード,法人名称 From 法人マスタ ORDER BY 法人コード"

Set Rs = ExecSql(Conn, SQL)

%>




<tr class="example">
<td style="width:300px; text-align:left; background-color: #00ff00;">
<b>法人コード</b>
</td>
<td>
<select name = "houjin">
<option value=""/>--------法人コード選択--------</option>
<%
While Not Rs.EOF
Response.Write"<option value=""" & Rs("法人コード") & """>" & Rs("法人コード") & " " & "</option>"
Rs.MoveNext
Wend
%>
</select>
</td>
</tr>
<tr class="example">
<td style="width:300px; text-align:left; background-color: #00ff00;">
<b>会社コード</b>
</td>
<td>
<textarea name="kaisya" style="width:100%" rows=1 class="textbox"></textarea>
</td>
</tr>
<tr class="example">
<td style="width:300px; text-align:left; background-color: #00ff00;">
<b>法人名</b>
</td>
<td>
<textarea name="hmei" style="width:100%" rows=1 class="textbox"></textarea>
</td>
</tr>

どうぞよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

どのくらいの数なのか不明ですが…



>直接option value部分に書けばできそうですが、
>データの量が膨大な為、直接コードに書くのは難しそうです
それだけ種類が多いのであれば、一つのセレクトで選択させるというUIそのものが問題ではないのでしょうか?

入力コードをサーバーに送信してDBからレコードを得たいのであれば、ajaxあたりをキーにググればいろいろと見つかると思います。

数が少なければ、最初にスクリプトに全データを渡して、あとはクライアント側で処理してしまうという方が簡単です。
ご質問の内容なら、数が1000くらいあってもデータ量として100kbにはならないくらいでしょうから。
一方で、1000個もあるプルダウンを操作するなんてとても私には考えられません。

この回答への補足

丁寧なご説明ありがとうございます。

ajaxを検索してみましたが、PHPを使用しているものが多くて、PHPを勉強したことのない私には理解できませんでした。

最初にスクリプトに全データを渡して、クライアント側で処理ということですが、意味はわかるのですが、どういう方法で行えばいいかが、全然思いつきません。
お手数でなければ、参考になるサイト等教えていただければ助かります。

どうぞ宜しくお願いいたします。

補足日時:2014/06/09 17:58
    • good
    • 0
この回答へのお礼

ajaxは難しいので、断念しました。
隠しフレームにてなんとかできました。
回答ありがとうございました。

お礼日時:2014/06/13 09:36

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJSPでタグでの selected 状態にするには・・・。

実は簡単なのかもしれないですが・・・。
変なとこで躓いています。

<SELECT>タグで15個の<OPTION>が入っているとします。
12番目の<OPTION>のやつをHTMLでいうところのselected状態にするにはどうしてやればいいですか?

宜しくお願いいたします。

Aベストアンサー

JavaScriptからselect要素の中の特定のoptionを選択状態にしたい場合は、

document.form名.select名.options[番号].selected= true;

でいけると思います。
ご質問のケースでは、12番目の要素を選択させると言うことですので、option要素の12番目を指定する意味で

document.form名.select名.options[11].selected= true;

とすれば良いと思います。 JavaScriptでも自動的に取得される要素の配列の連番は0から始まるので、12番目の要素を持つ配列の番号は11になることに気をつければ、問題ないでしょう。

参考になれば…

Qjavascriptでセレクトボックスの"selected"を動的につ

javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。

現在、以下のようなフォームを作成しました。

<select name='year'>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
</select>月

<select name='day'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
<option value='13'>13</option>
<option value='14'>14</option>
<option value='15'>15</option>
<option value='16'>16</option>
<option value='17'>17</option>
<option value='18'>18</option>
<option value='19'>19</option>
<option value='20'>20</option>
<option value='21'>21</option>
<option value='22'>22</option>
<option value='23'>23</option>
<option value='24'>24</option>
<option value='25'>25</option>
<option value='26'>26</option>
<option value='27'>27</option>
<option value='28'>28</option>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
</select>日


このセレクトボックスに、例えば今日の日付"2010年9月30日"だったら、それぞれの年、月、日の<option>に"selected"をつけたいのですが、javascriptではどのようにして実現したら良いのでしょうか?

よろしくお願いします。

javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。

現在、以下のようなフォームを作成しました。

<select name='year'>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8...続きを読む

Aベストアンサー

こんな感じで・・・

<script>
window.onload=function(){
var f=document.getElementById("f0");
var ymd=new Date();
checkSelect(f.elements["year"],ymd.getFullYear());
checkSelect(f.elements["month"],ymd.getMonth() +1);
checkSelect(f.elements["day"],ymd.getDate());
}
function checkSelect(obj,val){
for(var i=0;i<obj.length;i++){
if(obj[i].value==val){
obj[i].selected=true;
break;
}
}
}
</script>
<form id="f0">
<div>
<select name='year'>
<option value='2009'>2009</option>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>月

<select name='day'>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
</select>日
</div>
</form>

こんな感じで・・・

<script>
window.onload=function(){
var f=document.getElementById("f0");
var ymd=new Date();
checkSelect(f.elements["year"],ymd.getFullYear());
checkSelect(f.elements["month"],ymd.getMonth() +1);
checkSelect(f.elements["day"],ymd.getDate());
}
function checkSelect(obj,val){
for(var i=0;i<obj.length;i++){
if(obj[i].value==val){
obj[i].selected=true;
break;
}
}
}
</script>
<form id="f0">
<div>
<select name='year'>
<opt...続きを読む

Qプルダウンリストを作りMySQLからデータを取得してonchangeする方法

http://oshiete1.goo.ne.jp/oshiete_new.php3
のように、
プルダウンリストを作りMySQLからデータを取得してonchangeする方法を教えていただけませんか?

技術者向コンピューター
↓*onchangeでデータベースから取得?
プログラミング

JavaScript

具体的にやりたいことは、
お店の住所を登録してもらうスクリプトを作りたいと考えています。
そのため、
北海道

札幌市

○○・・・
のように、都道府県を選ぶとonchangeで市区町村が表示されていく、というようなものを造りたいと考えています。
スクリプトの検索ページで、『北海道』などで検索をかけるつもりですので、データベース(MySQL)に格納したいと思っています。

ざっくりした質問で申し訳ないですが、参考になるページでも結構ですので、教えていただけたらうれしいです。
よろしくお願いします。

Aベストアンサー

失礼ながらmakoto_tyさんがどの程度の知識をお持ちかわからないですし、どの部分が一番ネックになっているのかわからない為、流れとポイントをお伝えします。

まず、プルダウンのonchangeイベントと同時にAjaxでサーバーに
選択された都道府県を送信し、サーバー側ではperlなりphpなりjavaなりで、都道府県(コード)を元にMySQLから市区町村を検索し、結果を返却する。
結果を受け取ったjavascriptは、プルダウンに市区町村を生成し終了です。

サーバー側は何の言語ですか?
Ajaxについては、prototype.jsというフレームワークを使うと
たしか、Ajax.Request()クラスで簡単に非同期通信が実装できます。

http://www.imgsrc.co.jp/~kuriyama/prototype/prototype.js.html#UsingAjaxRequest

プルダウンへの市区町村の反映は、
var opt = document.createElement("option");
opt.value="市区町村コード";
opt.text = "札幌市";
プルダウン.appendChild(opt);
といった感じの事を繰り返せばいいです。
都道府県が変更された時、変更前の都道府県の市区町村を削除しなければなりませんが。

サーバーサイドのプログラムでMySQLへ接続するのは
「プログラム名 MySQL 接続」などのキーワードで検索すれば
期待した結果が得られるはずだと思います。

失礼ながらmakoto_tyさんがどの程度の知識をお持ちかわからないですし、どの部分が一番ネックになっているのかわからない為、流れとポイントをお伝えします。

まず、プルダウンのonchangeイベントと同時にAjaxでサーバーに
選択された都道府県を送信し、サーバー側ではperlなりphpなりjavaなりで、都道府県(コード)を元にMySQLから市区町村を検索し、結果を返却する。
結果を受け取ったjavascriptは、プルダウンに市区町村を生成し終了です。

サーバー側は何の言語ですか?
Ajaxについては、prototype.js...続きを読む

QJava-jspの画面入力値保持について

画面にテキスト、ラジオボタン、リストボックス とボタンがあります。
ボタンを押すと、JAVAで処理を行い、jspのviewで表示します。

1.テキスト、ラジオボタン、リストボックスなどに値が入力、設定されている状態で
ボタンを押して処理後にテキスト、ラジオボタン、リストボックスの値が
変わらないようにしたいのですが、
その場合、たとえば、入力、設定値をセッションになどに格納しておき
jspの所で、セッションから値を設定すると言うような方法になるのでしょうか?

2.ボタン押して処理後、ラジオボタン、リストボックスの選択値も
  変えないようにしたいのですが、
  これはどのように実現するのが、適切なのでしょうか?


以上、よろしくお願いします。

Aベストアンサー

ボタンというのはフォームのサブミットボタンのことですよ?
つまり、画面遷移が起きることを前提とすると(元の同じ画面に戻るのも含みます)

テキスト、ラジオボタン、リストボックスの状態を「要求パラメータ」として
送信し、それを次画面に反映するというのが最も一般的な方法です。

フレームワーク struts のアクションフォーム&JSPカスタムタグを使うと比較的楽に
そういう画面が作れますが、多くのフレームワークでも大差ありません。
簡単な画面なら素のサーブレート+JSPでも十分作れます。

セッションでもできますが、 セッションはログイン情報などの保持など、
限定された範囲で使うのが普通です。また、結局セッションに最新の
テキスト、ラジオボタン、リストボックスの状態を送るには、「要求パラメータ」
を送信する必要があります。

AJAXを使うという方法もあります。この場合、ボタンは AJAX 処理だけを行い
画面遷移を起こさないので、サーバ側で画面のテキスト、ラジオボタン、
リストボックスの状態をもつ必要はありません。

Qリクエストに応じたselectedの初期値設定方法

リクエストに応じたOPTIONをselectedの初期値にする方法を教えて下さい。

java servletからjspを表示する際に、
setAttributeした値に応じてプルダウンの初期値に設定するにはどうしたら良いですか?

以下の様にDetail.jspに移動する前に、NOをセットしています。
普通に実行したら、YESで表示されてしまいます。
jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。

例)
[[[[[ShowDetail.java]]]]]
request.setAttribute("JAPAN", "NO");
request.getRequestDispatcher("/Detail.jsp")
.forward(request, response);

[[[[Detail.jsp]]]]
<form name="Japan">
<table border="1">
<tr>
<th>Japan</th>
<td>
<select name="Japan" id="Japan" >
<option value="YES">YES</option>
<option value="NO">NO</option>
<option value="KNOW">DON'T KNOW</option>
</select>
</td>
</tr>
</table>
</form>

リクエストに応じたOPTIONをselectedの初期値にする方法を教えて下さい。

java servletからjspを表示する際に、
setAttributeした値に応じてプルダウンの初期値に設定するにはどうしたら良いですか?

以下の様にDetail.jspに移動する前に、NOをセットしています。
普通に実行したら、YESで表示されてしまいます。
jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。

例)
[[[[[ShowDetail.java]]]]]
request.setAttribute("JAPAN", "NO");
request.getRequestDispatcher("/Detail.jsp")
.f...続きを読む

Aベストアンサー

こんにちは。

>普通に実行したら、YESで表示されてしまいます。
>jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。

あと、カテゴリがJavaScriptではなくJavaですね。

順に考えてみませんか。初期値を設定するには何が必要でしょうか。
今は何もしていないから一番上のYESが表示されています。
<option value="NO" selected="selected">とする必要がありますよね。
そうしたらそれを出力するようにJSPを記述すればいいわけです。

フレームワークを何も利用していなければ以下のようになると思います。

<%
// 例だとjapanにNOが入っている
String japan = (String)request.getAttribute ( "JAPAN" );
%>

<select>
<option value="YES"<%= "YES".equals(japan) ? " selected=\"selected\"" : ""; %>>YES</option>
<option value="NO"<%= "NO".equals(japan) ? " selected=\"selected\"" : ""; %>>NO</option>
<option value="KNOW"<%= "KNOW".equals(japan) ? " selected=\"selected\"" : ""; %>>KNOW</option>
</select>

各optionでどの文字列が入っているかによってselected="selected"を出力すれば良いです。

<%= "YES".equals(japan) ? " selected=\"selected\"" : ""; %>

上の記述は

if ( "YES".equals(japan) ) {
out.write ( " selected=\"selected\"");
} else {
out.write ( "" );
}
と同義です。
ようするにjapanにYESが入ってきたらselected="selected"を出力することにより初期選択項目とする。
NOが入ってくれば"YES".equals(japan)には該当しないので無出力、次の"NO".equals(japan)で該当するのでNOの<option>が初期値となります。

こんにちは。

>普通に実行したら、YESで表示されてしまいます。
>jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。

あと、カテゴリがJavaScriptではなくJavaですね。

順に考えてみませんか。初期値を設定するには何が必要でしょうか。
今は何もしていないから一番上のYESが表示されています。
<option value="NO" selected="selected">とする必要がありますよね。
そうしたらそれを出力するようにJSPを記述すればいいわけです。

フレームワークを何も利用していなければ以下のようになると...続きを読む

QHTMLフォームのSELECTの幅を一定にするためには?

HTMLフォームのSELECTの幅を一定にするためにはどのようにすれば
いいのでしょうか?

CSS等で設定できるとありがたいのですが、やり方がわかりません。

Aベストアンサー

<select style="width: 200px">


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング