出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() |
[5696] セレクトボックスの作動について |
投稿者:よーえつさん 2006/02/26 15:47:48 |
フォームからデータがセレクトボックスに入力された場合に値を取得し、selectedで値を固定したいのですが、フォームからのデータが取得できません。 下のスクリプトにあるように、定数を入力した場合は問題なく反映されます。 ご指導よろしくお願いいたします。 Dim StartPoint, EndPoint, SelectPoint StartPoint = 1900 EndPoint = 2006 SelectPoint = 1969 'SelectPoint = Request.Form("Year") If Request.Form("Year") = "" Then tagYear = "<SELECT name='Year' id='Year' style='color:#FFFFFF;background-color:#FF2200;'>" & vbCRLF Call optYear(StartPoint, EndPoint, SelectPoint) Else tagYear = "<SELECT name='Year' id='Year'>" & vbCRLF Call optYear(StartPoint, EndPoint, SelectPoint) End If tagYear = tagYear & "</SELECT>" & vbCRLF Sub optYear(StartPoint, EndPoint, SelectPoint) For i = StartPoint to EndPoint If i = SelectPoint Then tagYear = tagYear & "<OPTION value='" & i & "' selected>" & i & "</OPTION>" & vbCRLF Else tagYear = tagYear & "<OPTION value='" & i & "'>" & i & "</OPTION>" & vbCRLF End If Next End Sub |
[5698] Re:セレクトボックスの作動について |
投稿者:よーえつさん 2006/02/26 18:15:45 |
悩みました。 フォームから取得したデータは、0-9のような半角数字でもStringで認識されるようです。>僕が知らなかっただけ? なのでIntegerに変換したら動くようになりました。 Sub optYear(StartPoint, EndPoint, SelectPoint) For i = StartPoint to EndPoint If i = CInt(SelectPoint) Then <=ここですね tagYear = tagYear & "<OPTION value='" & i & "' selected>" & i & "</OPTION>" & vbCRLF Else tagYear = tagYear & "<OPTION value='" & i & "'>" & i & "</OPTION>" & vbCRLF End If Next End Sub |
[5699] Re:セレクトボックスの作動について |
投稿者:Keithさん 2006/02/26 21:34:15 |
> 悩みました。 > フォームから取得したデータは、0-9のような半角数字でもStringで認識されるようです。>僕が知らなかっただけ? > なのでIntegerに変換したら動くようになりました。 はじめまして > If i = CInt(SelectPoint) Then <=ここですね cintでも解決しますが、何らかの原因で数値以外が入った場合に エラーとなる可能性は捨て切れません。 私の場合は逆に文字列比較で if cstr(i)=cstr(selectpoint) then としています。挙動はまったくおんなじですがエラー対策としていかがでしょうか? |
[5704] Re:セレクトボックスの作動について |
投稿者:よーえつさん 2006/02/27 11:44:11 |
Keithさん、コメントありがとうございます。 > cintでも解決しますが、何らかの原因で数値以外が入った場合に > エラーとなる可能性は捨て切れません。 > 私の場合は逆に文字列比較で > > if cstr(i)=cstr(selectpoint) then > > としています。挙動はまったくおんなじですがエラー対策としていかがでしょうか? そうですね。 今回の場合は、セレクトボックスからのデータ入力ということでしたので単純に If i = CInt(SelectPoint) Then で構わなかったのですが、文字列が入力されるセレクトボックスなどは使えませんね。 上記の方法を参考にさせていただきます。 |
TreeBBS For ASP V.0.1.3 |