出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

コンボboxの複数選択した値を取りたい   hiruさん [01/07/03 17:46:27] [364]
  Re:コンボboxの複数選択した値を取りたい   YasNet(管理人)さん [01/07/03 21:00:30] [368]
    Re:コンボboxの複数選択した値を取りたい   hiruさん [01/07/04 9:57:06] [370]
      Re:コンボboxの複数選択した値を取りたい   YasNet(管理人)さん [01/07/04 15:23:05] [371]
        Re:コンボboxの複数選択した値を取りたい   hiruさん [01/07/04 16:29:43] [373]
      サンプルを作ってみました   YasNet(管理人)さん [01/07/04 16:08:23] [372]
        Re:サンプルを作ってみました   hiruさん [01/07/04 16:54:09] [374]
        location.hrefが実行されません。。。   hiruさん [01/07/05 11:30:26] [375]
          Re:location.hrefが実行されません。。。   YasNet(管理人)さん [01/07/05 11:53:09] [376]
            Re:location.hrefが実行されません。。。   hiruさん [01/07/05 14:06:17] [377]
              Re:location.hrefが実行されません。。。   YasNet(管理人)さん [01/07/05 14:20:49] [378]
                原因がわかりました。   hiruさん [01/07/06 16:35:31] [383]
                  Re:原因がわかりました。   YasNet(管理人)さん [01/07/07 8:19:51] [386]
                    Re:原因がわかりました。   hiruさん [01/07/09 13:59:58] [389]
                      Re:原因がわかりました。   YasNet(管理人)さん [01/07/10 10:20:28] [394]
                        Form と QueryStringの問題   hiruさん [01/07/10 17:17:50] [395]
                          Re:Form と QueryStringの問題   YasNet(管理人)さん [01/07/10 17:44:11] [396]
                            Re:Form と QueryStringの問題   hiruさん [01/07/12 10:16:36] [415]

[364] コンボboxの複数選択した値を取りたい
投稿者:hiruさん 01/07/03 17:46:27
とても、初歩的な質問で申し訳ないのですが、どなたかお力をお貸し下さい。

コンボbox(複数選択)で選択した値、それぞれにテキストエリアに記入された値をつけてサーバー側で処理をしたいと思っているのですが。
かなりパニック状態なので箇条書きさせて頂きます。(^^;ゞ

@テキストエリアに入力された値を入力してもらう。
AコンボBOXから選択してもらう。
Bボタンを押してもらう。
Cクライアント側の処理としてjavascriptで入力チェック。
Dサーバー側の処理は@とAで入力された値を取る。
EA+@の形でサーバー側で処理を続行する。

という感じなのですが、どなたかレスを頂ければパニック中のコードで申し訳ないのですが、
投稿いたしますので、御教授願います。

Request.Form
Request.QueryString
など使用していますがいまいちわかりません。
もっと詳しく情報を載せたいのですが、どんな情報が必要なものなのかも定かではなく、
申し訳ないのですが、よろしくお願いします。

[368] Re:コンボboxの複数選択した値を取りたい
投稿者:YasNet(管理人)さん 01/07/03 21:00:30
こんにちは YasNetです

> コンボbox(複数選択)で選択した値、それぞれにテキストエリアに記入された値をつけてサーバー側で処理をしたいと思っているのですが。

ASPのソースRequest.form の 近辺を提示して頂けるとヒントをお答え出きるかも知れません
あと、そのFORMのHTML(コンボBOX部近辺)があるといいのでは・・・

では では

[370] Re:コンボboxの複数選択した値を取りたい
投稿者:hiruさん 01/07/04 9:57:06
レスありがとうございます!!

> ASPのソースRequest.form の 近辺を提示して頂けるとヒントをお答え出きるかも知れません

Sub aspvbs ()
↓ 同じASP上にすべてのソースがあるので、一回目読み込むときにこの関数を呼ばない為
If Fg = 1 Then
Set obj_fso = Server.CreateObject("Scripting.FileSystemObject")
a = Trim(Request.Form("xxx"))
b = Trim(Request.Form("xxx"))
c = Trim(Request.Form("xxx"))
d = Trim(Request.QueryString("ZZZ"))
e = a & d
f = b & d
g = c & d
h = Server.MapPath("e")
i = Server.MapPath("f")
j = Server.MapPath("g")

〜〜〜〜〜

〜〜〜〜〜
response.write 表
Else
response.write ("テキストを入力し、コンボを選択してください")
End Sub

> あと、そのFORMのHTML(コンボBOX部近辺)があるといいのでは・・・

<form name="form">

↓ 後で結合させるテキストBOXです。
<input type="text" name="ZZZ" value="zzz" size="30">

<select size="3" name="xxx" MULTIPLE>
<option value="XXa" selected>a</option>
<option value="XXb">b</option>
<option value="XXc">c</option>
</select>

↓ 実行ボタンを押すとフォームチェックの関数に飛びます。
<input type="button" name="botton" value="実行" onClick="_js()">

↓ 上のサーバー側の関数を呼んでいます。
<% Call aspvbs() %>
</form>

以前はクライアント側の処理の時にxxx+ZZZをしていましたが、
サーバー側に渡せなかったので、サーバー側で別々にとってきてくっつけるという形にしました。
が、やはりとってこれません。

試行錯誤しすぎてパニック中なのですが、御教授お願いいたします。

[371] Re:コンボboxの複数選択した値を取りたい
投稿者:YasNet(管理人)さん の <ホームページ> 01/07/04 15:23:05
こんにちは YasNet です
 
えっと、まず確認して欲しい事。
どちらか一方だけなら取得できるのか?
あと、JavaScriptを使ってSubmitしているのでしょうか?

response.write で、Request.Form と Request.QueryString
の内容は確認されましたか?
 
パッと見た感じ、サーバサイドの処理とクライアントサイドの処理が混在しているように
見えますが・・・
はしょっているので、そう、見えるだけかもしれませんが・・・
 
では では

[373] Re:コンボboxの複数選択した値を取りたい
投稿者:hiruさん 01/07/04 16:29:43
早速のレス、ありがとうございます!!

> えっと、まず確認して欲しい事。
> どちらか一方だけなら取得できるのか?
> response.write で、Request.Form と Request.QueryString
> の内容は確認されましたか?

response.writeしてみましたが、
両方とも取れていませんでした。

> あと、JavaScriptを使ってSubmitしているのでしょうか?

このSubmitとは、どのようにするのでしょうか?
JavaScriptの部分は以下の通りです。

<Script Language="JavaScript">
function js(){
var XXXNM;
var zzzNM;
var o;
var valNM;
var exi;
var a;
var b;
var c;
O = form.XXX;
XXXNM = form.XXX.value;
zzzNM = form.zzz.value;
i = 0;
if (form.zzz.value == 'zzz'){
alert ('テキストの中を入力してください');
}
for (i=0; i < 3; i++){
if (O.options[i].selected == true){
var val;
val = O.options[i].value;
if( i == 0 ){
a = val + '\n' + zzzNM ;
valNM = val;
exi++;
}
if( i == 1 ){
b = val + '\n' + zzzNM ;
valNM = valNM + val;
exi++;
}
if( i == 2 ){
c = val + '\n' + zzzNM ;
valNM = valNM + val;
exi++;
}
}
}
if(exi <= 1){
alert ('選択は二つ以上してください。');
}else{
location.href = '<%= str_URL %>?XXX=' + valNM + '&zzz=' + zzzNM;
}
}
</script>

>  
> パッと見た感じ、サーバサイドの処理とクライアントサイドの処理が混在しているように
> 見えますが・・・
> はしょっているので、そう、見えるだけかもしれませんが・・・

その可能性はかなり高いです。
その理由(いいわけ)は、あまりにも試行錯誤していく中でクライアントでできないなら、
サーバーでしてしまえ、
と思ってごちゃごちゃになってしまったからです。
フローチャートも何度も書き直しているのですが、
ちょこちょこ書き直すので意味がなくなってきています。
こんな私ですが、どうか、どうか辛抱強くお付き合い下さい。

[372] サンプルを作ってみました
投稿者:YasNet(管理人)さん の <ホームページ> 01/07/04 16:08:23
こんにちは YasNetです
 
サンプルを作ってみました
HTMLは下記
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
</head>

<body>

<form method="POST" action="test.asp">
<p><select name="D1" size="5" multiple>
<option selected value="いち">コンボBOX1</option>
<option value="に">コンボBOX2</option>
<option value="さん">コンボBOX3</option>
<option value="よん">コンボBOX4</option>
<option value="ご">コンボBOX5</option>
</select></p>
<p><input type="text" name="T1" size="20"></p>
<p><input type="submit" value="送信" name="B1"><input type="reset" value="リセット"
name="B2"></p>
</form>
</body>
</html>

下記ASPはtest.aspで保存してください。
<%
Response.Write "<html>" & vbCRLF
Response.Write "<head>" & vbCRLF
Response.Write "<meta http-equiv='Content-Type' content='text/html; charset=x-sjis'>" & vbCRLF
Response.Write "<title>コンボBOXのてすと</title>" & vbCRLF
Response.Write "</head>" & vbCRLF
Response.Write "<body>" & vbCRLF

Response.Write "コンボBOXの内容 = " & Request.Form("D1") & "<br>"
Response.Write "テキストの内容 = " & Request.Form("T1")

Response.Write "</body>" & vbCRLF
Response.Write "</html>" & vbCRLF
%>
参考になりました?

では では

[374] Re:サンプルを作ってみました
投稿者:hiruさん 01/07/04 16:54:09
> サンプルを作ってみました

ありがとうございます!!

> HTMLは下記
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> <html>
>
> <head>
> <meta name="GENERATOR" content="Microsoft FrontPage 3.0">
> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
> <meta http-equiv="Content-Style-Type" content="text/css">
> <title></title>
> </head>
>
> <body>
>
> <form method="POST" action="test.asp">
> <p><select name="D1" size="5" multiple>
> <option selected value="いち">コンボBOX1</option>
> <option value="に">コンボBOX2</option>
> <option value="さん">コンボBOX3</option>
> <option value="よん">コンボBOX4</option>
> <option value="ご">コンボBOX5</option>
> </select></p>
> <p><input type="text" name="T1" size="20"></p>
> <p><input type="submit" value="送信" name="B1"><input type="reset" value="リセット"
> name="B2"></p>
> </form>
> </body>
> </html>
>
> 下記ASPはtest.aspで保存してください。
> <%
> Response.Write "<html>" & vbCRLF
> Response.Write "<head>" & vbCRLF
> Response.Write "<meta http-equiv='Content-Type' content='text/html; charset=x-sjis'>" & vbCRLF
> Response.Write "<title>コンボBOXのてすと</title>" & vbCRLF
> Response.Write "</head>" & vbCRLF
> Response.Write "<body>" & vbCRLF
>
> Response.Write "コンボBOXの内容 = " & Request.Form("D1") & "<br>"
> Response.Write "テキストの内容 = " & Request.Form("T1")
> 参考になりました?
>

大変参考になります!!
少し頭がすっきりしてきました。
とりあえず、もう一度試行錯誤させて下さい。
もう、どうしても無理だと思ったら、もう一度お力添えをお願いいたします。
結果報告は良くても悪くても、必ずさせて頂きますので!!
それではまた!!

[375] location.hrefが実行されません。。。
投稿者:hiruさん 01/07/05 11:30:26
昨日はありがとうございました!!

Request.Formで値がとれました!!
Response.Writeで確認できました。
そこでまた問題が・・・。
URLの後ろにパラメータをつけたいのですが、
getで送ると\マークを使っているのでC%5なるものが出てしまい使えません。
そこで、postを使うことにしました。
JavaScriptでlocation.hrefという部分は無視されて、
結局URLの後にパラメータが付きません。
どのようにすれば、URLに後にパラメータがつくのでしょうか?

[376] Re:location.hrefが実行されません。。。
投稿者:YasNet(管理人)さん 01/07/05 11:53:09
こんにちは YasNet です
 
> URLの後ろにパラメータをつけたいのですが、
> getで送ると\マークを使っているのでC%5なるものが出てしまい使えません。
> そこで、postを使うことにしました。
> JavaScriptでlocation.hrefという部分は無視されて、
> 結局URLの後にパラメータが付きません。
> どのようにすれば、URLに後にパラメータがつくのでしょうか?
上記の事からすると、
post と get を同時にしたいって事?でしょうか?
あまり、お勧めしません。IE限定ならまず問題がないのですが、
ネスケだと、ある条件の時に両方は取得出来なくなりますので・・・
 
出来れば、1つ別のフォームを用意してそこに一旦格納して、
そのフォームをサブミットすると良いと思います。
 
はずしてたらすみません
では では

[377] Re:location.hrefが実行されません。。。
投稿者:hiruさん 01/07/05 14:06:17
早速のレスありがとうございます!!

説明がうまく出来ずにすみません!!

> > URLの後ろにパラメータをつけたいのですが、
> > getで送ると\マークを使っているのでC%5なるものが出てしまい使えません。

http://www.yasch.com/asp/asptreebbs?xxx=\ooo&zzz=\lll
と出したいところを
http://www.yasch.com/asp/asptreebbs?xxx=C%5ooo&zzz=C%5lll
とでてしまい、getを使えません。
そこで、postを使うことにしました。

> > JavaScriptでlocation.hrefという部分は無視されて、
> > 結局URLの後にパラメータが付きません。
> > どのようにすれば、URLに後にパラメータがつくのでしょうか?
> 上記の事からすると、
> post と get を同時にしたいって事?でしょうか?

パラメータをURLの後ろに表示したいのですが、getは上記のように記号がうまく出ないので使えません。
なので、postを使おうと考えています。

> 出来れば、1つ別のフォームを用意してそこに一旦格納して、
> そのフォームをサブミットすると良いと思います。

具体的にどのようにすればサブミット出来るのでしょうか?
なぜ、JavaScriptのlocation.hrefは出来なくなっているのでしょうか?
あの形でパラメータは渡せないのでしょうか?

幾度も申し訳ありません。
出来るだけいろいろ試しているつもりなのですが、
力不足で甘えてばかりで申し訳ないです(--。。。

[378] Re:location.hrefが実行されません。。。
投稿者:YasNet(管理人)さん 01/07/05 14:20:49
こんにちは YasNet です
 
> > 出来れば、1つ別のフォームを用意してそこに一旦格納して、
> > そのフォームをサブミットすると良いと思います。
>
> 具体的にどのようにすればサブミット出来るのでしょうか?
> なぜ、JavaScriptのlocation.hrefは出来なくなっているのでしょうか?
> あの形でパラメータは渡せないのでしょうか?
 
不可能では、無いですが・・・
記号が入るのであれば、お勧めしません。

あと、サブミットは、下記サイトを参考にされるとわかるのではないでしょうか・・・
http://www.openspc2.org/JavaScript/ref/form/sample/submit.htm
 
では では

[383] 原因がわかりました。
投稿者:hiruさん 01/07/06 16:35:31
お世話になっております。

原因が判明いたしました。
幾度となくresponse.writeを試したところ、
一度テキストに取ってきたものを落としていたんですが、
そのテキストに落としたものを取ってくるときに、
記号が取ってこれないということが原因だった模様です。
パスをとりたいのでどうしても記号を使いたいのですが、
記号も取ってこれるフォームの取り方ってあるのでしょうか?

[386] Re:原因がわかりました。
投稿者:YasNet(管理人)さん の <ホームページ> 01/07/07 8:19:51
こんにちは YasNet です
 
> そのテキストに落としたものを取ってくるときに、
> 記号が取ってこれないということが原因だった模様です。
> パスをとりたいのでどうしても記号を使いたいのですが、
> 記号も取ってこれるフォームの取り方ってあるのでしょうか?
 
この文面からすると、フォームの取得した内容を直接みると
値が入っていて、変数(ワーク)に 入れたら駄目ってこと?
 
それともget でどうしても渡したいのでしょうか?
 
では では

[389] Re:原因がわかりました。
投稿者:hiruさん 01/07/09 13:59:58
おはようございます。hiruです。
レスありがとうございます!!

> > パスをとりたいのでどうしても記号を使いたいのですが、
> > 記号も取ってこれるフォームの取り方ってあるのでしょうか?
>  
> この文面からすると、フォームの取得した内容を直接みると
> 値が入っていて、変数(ワーク)に 入れたら駄目ってこと?

テキストに落としたもの(フォームで取得した内容)を変数に入れるとき、一部(記号)削除されて変数に入ってしまいます。
変数に入れたいものがパスなのでそのまま入っていないと処理が出来ません。
記号も取得できないでしょうか(--。。。


[394] Re:原因がわかりました。
投稿者:YasNet(管理人)さん 01/07/10 10:20:28
こんにちは YasNet です
 
> テキストに落としたもの(フォームで取得した内容)を変数に入れるとき、一部(記号)削除されて変数に入ってしまいます。
> 変数に入れたいものがパスなのでそのまま入っていないと処理が出来ません。
> 記号も取得できないでしょうか(--。。。
 
当方では、確認できませんでした。
ソースを公開してみては・・・
 
では では

[395] Form と QueryStringの問題
投稿者:hiruさん 01/07/10 17:17:50
こん××は!!hiruです。

訳のわからない質問ばかりしてしまって申し訳ありませんでしたm(__)m

あれからも解決できずにいることを一つずつ表にしてじっくり考えてみました。
何度も本を読み返し、過去ログもあらゆる単語を検索して参考にさせて頂きました。
自分の過去ログも読み直して、
どこが分からないのか分からないといった状況だったことに反省しています。

結局のところマップパスが取りかったのですが、¥マークを使ったやり方がわるかったようで、
Formでも、QueryStringでも値はとることができました。
くっつけるところも、
XXXs = Split(XXX,",")
For i = LBound(XXXs) To UBound(XXXs)
If i = 0 Then
e = XXXs(i) & zzz
ElseIf i = 1 Then
f = XXXs(i) & zzz
End If
Next
で、選択された値にテキストをくっつけることが出来ました。
こんな初心者にも丁寧に根気強く御教授下さった管理人様、誠に感謝しております!!
大変親切な管理人様、こちらのサイトのより一層のご発展を心から望んでおります!!
これからも、こちらを活用させて頂きながら、自分なりに精一杯勉強していきます!!




[396] Re:Form と QueryStringの問題
投稿者:YasNet(管理人)さん 01/07/10 17:44:11
こんにちは YasNet です
 
> XXXs = Split(XXX,",")
> For i = LBound(XXXs) To UBound(XXXs)
> If i = 0 Then
> e = XXXs(i) & zzz
> ElseIf i = 1 Then
> f = XXXs(i) & zzz
> End If
> Next
> で、選択された値にテキストをくっつけることが出来ました。
> こんな初心者にも丁寧に根気強く御教授下さった管理人様、誠に感謝しております!!
> 大変親切な管理人様、こちらのサイトのより一層のご発展を心から望んでおります!!
> これからも、こちらを活用させて頂きながら、自分なりに精一杯勉強していきます!!
こちらこそ、よろしくです。
う〜、結局答えを見つけてあげれませんでしたね。申し訳ないです。
上記ソースで気になる点が・・・
> For i = LBound(XXXs) To UBound(XXXs)
> If i = 0 Then
LBound(XXXs)これって0の固定でよいのでは・・・
では では

[415] Re:Form と QueryStringの問題
投稿者:hiruさん 01/07/12 10:16:36
こん××は!! hiruです。
 
> > XXXs = Split(XXX,",")
> > For i = LBound(XXXs) To UBound(XXXs)
> > If i = 0 Then
> > e = XXXs(i) & zzz
> > ElseIf i = 1 Then
> > f = XXXs(i) & zzz
> > End If
> > Next
> LBound(XXXs)これって0の固定でよいのでは・・・
た、確かに(^。^;A(アセアセ)
1がLBound(XXXs)に入る可能性はどういった時なのか、
イマイチつかめず本の通りにやってしまいました。
ありがとうございます(^-^)




TreeBBS For ASP V.0.1.3
Program By YasNet