プロが教えるわが家の防犯対策術!

こんにちは。
今ローカルでasp.netの勉強をしているのですが、フォームでいきない躓きました・・・PHPはある程度使うことができます。
性別を配列にして
functionでフォームを表示させているのですが、選択後に初期値でcheckが入りません・・・
性別のラジオボタンを何も選択しなければ、デフォルトの値にチェックが入ります。
何がなんだかわからないので、ご教授をよろしくお願いします。
ソースは

dim sexArr '性別の選択用配列
sexArr = Array("男性", "女性") '配列設定
'配列からラジオボタンの作成
function getRadio(name, selectedVal, valArr, defaults)
getRadio = ""
if selectedVal = "" Then
selectedVal = defaults
END if

For i = 0 to UBound(valArr)
getRadio = getRadio & "<input type=""radio"" name=""" & name & """ value=" & i & " "
if selectedVal = i Then
getRadio = getRadio & "checked"
response.Write("あああ")
else
response.Write(selectedVal)
response.Write("いいい")
response.Write(i)
END if
getRadio = getRadio & ">"
getRadio = getRadio & valArr(i)
NEXT
END Function

表示部分に

<% = getRadio("sex", Request.Form("sex"), sexArr, 0) %>

としています。
デバック用に

<%
For i = 0 to 3
if Request.Form("sex") = i Then
response.Write("あああ")
else
response.Write("いいい")

END if
NEXT
response.Write( Request.Form("sex"))
%>
っとfaunctionを使わずにifをしてみましたが、結果は同じでした。
わかり難い文章で申し訳ございませんが、どうか、よろしくお願いします。

A 回答 (1件)

これは ASP.NET じゃなくて ASP ですよね?


VBScript も使ってますし。
ASP は何年も触っていないのでズバリな回答はできませんが、解決へ向かうためのヒントだけでも。


(1) getRadio 関数で受けた引数は意図する値になっているか確認。
function getRadio(name, selectedVal, valArr, defaults)
の次の行にでも
Response.Write(name) & "<br/>" & vbCrLf
Response.Write(selectedVal) & "<br/>" & vbCrLf
Response.Write(defaults) & "<br/>" & vbCrLf
For hoge = 0 To UBound(valArr)
Response.Write(valArr(hoge)) & "<br/>" & vbCrLf
Next
なんてデバッグ出力用のコードを書き足してみてください。
これを実行し、ブラウザに表示された値を見て、自分が意図している値かどうかを判断します。


(2) 意図している HTML と、実際に出力された(意図しない結果になる)HTML とを比べてみてください。
意図している HTML は手書きまたは WYSWIG なツールで静的な HTML を作ってください。
これらを比べれば、ASP が出力する HTML のどこがおかしいのかがわかります。
どこがおかしいのかが分かれば、該当する VBScript のコードが分かります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。自己解決したので、回答を見るのを忘れてました。
デバッグ用の出力はして、値は正常でした。
原因は何かわからなかったので、
判定のところに
if valArr(selectedVal) = valArr(hoge) then
と要素でチェックを掛けてやれば、動きました。
お礼が遅くなり申し訳ございませんでした。

お礼日時:2006/09/23 23:19

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