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

セレクトボックスの作動について   よーえつさん [2006/02/26 15:47:48] [5696]
  Re:セレクトボックスの作動について   よーえつさん [2006/02/26 18:15:45] [5698]
    Re:セレクトボックスの作動について   Keithさん [2006/02/26 21:34:15] [5699]
      Re:セレクトボックスの作動について   よーえつさん [2006/02/27 11:44:11] [5704]

[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
Program By YasNet