以下のようなリンクが自動生成されるHTMLをつくりました。
http://**********/****/zzz.asp?A=5,B=nande
zzz.aspの内部で
A=request.querystring("A")
B=request.querystring("B")
と記述して、受け渡しを完了しているのですが、
Aについては数値として扱いたいのですが、
チェックをしていると、どうも文字列として変数の中に格納されているようです。
ここで質問です。
(1)requestオブジェクトを使って値の受け渡しをした場合
すべて受け渡し後は文字列としてしか扱えないのでしょうか?
(2)文字列としてしか扱えない場合、数値として受け渡し後に
扱いたい場合の対処方法はあるのでしょうか?
ちなみに受け渡しの時のMethodはGetを使っています。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
>>>ところで、「zzz.asp?A=5,B=nande」の部分ですが、「zzz.asp?A=5&B=nande」ではないですか?
>
>ご指摘の通りです。
実は、ここが間違っているせいかと思ってたんですが、そうではないのですね。
「型が一致しません。: 'cint'」というエラーですが、引数部分が空文字列であったり、数値に変換できない文字列を指定した場合に発生します。
Request.QueryStringでパラメータ自体が(文字列としても)正しく取得できていないような気がするのですが・・・。
次の点、もう一度確認してみて下さい。
(1).zzz.aspへのパラメータが正しく行われているか?
zzz.aspが開かれている状態(エラーメッセージが出ててもかまいません)の画面を右クリックし、プロパティを表示。
この時にアドレスが「http://**********/****/zzz.asp?A=5&B=nande」になっていなければ、呼び出し元のプログラムも疑ってみてください
(2).QueryStringでパラメータが正しく取得できているか?
Response.Write "A: """ & Request.QueryString("A") & """<br>"
Response.Write "B: """ & Request.QueryString("B") & """<br>"
のようなコードを埋め込んで、A, Bのパラメータがどのようになっているか確認
Aに数字が入っていますか?
それと、
>ちなみに受け渡しの時のMethodはGetを使っています。
とありますが、呼び出し元では
<form action="http://**********/****/zzz.asp?A=5&B=nande" method="get">
<input type="submit">
</form>
というような記述をしてはいませんか?この場合、正しくパラメータが渡らないかもしれません。
とりあえず、思いついたことを書いてみました(^^;
再びの回答ありがとうございます。
(1)については問題ありませんでした。
(2)は、質問をアップしたあとに何度かチェックしてみたのですが、
見た目上は変数の中に入っていました。
ただ、5と見えても
それが数値なのか、文字列なのかは表示させるだけでは判断できなかったので
最初は全く訳がわからなかったのです。
#4のお礼にも書きましたが、
気まぐれで書いたコードは動いたので
かなり不思議です。
ただ、動いてしまったので
もう、逆に怖くてさわれません・・・(笑)
どちらにしてもCintという関数を知らなかったので
非常に助かりました。
ご丁寧にありがとうございました。
No.3
- 回答日時:
CInt関数などで変換できます。
A = CInt(request.querystring("A"))
ところで、「zzz.asp?A=5,B=nande」の部分ですが、「zzz.asp?A=5&B=nande」ではないですか?
この回答への補足
#2と#3で同じ回答でしたので、テスト後のご報告を・・・
A = CInt(request.querystring("A"))
を記述して実際にテストしてみたのですが
以下のようなエラーが出ました。
-------------
エラー タイプ
Microsoft VBScript 実行時エラー (0x800A000D)
型が一致しません。: 'cint'
/test5.asp, line 20
-------------
ちなみに作成したASPファイルの中身の
頭の部分は・・・
<HTML>
<head>
<TITLE>簡単な例</TITLE>
</head>
<body>
<%
A = CInt(request.querystring("A"))
(中略)
</HTML>
マイクロソフトのHPでリファレンスを調べると
使い方はあっているようなのですが・・・
なぜエラーになってしまうのでしょうか・・・
どうもありがとうございます。
>>ところで、「zzz.asp?A=5,B=nande」の部分ですが、「zzz.asp?A=5&B=nande」ではないですか?
ご指摘の通りです。
すみません・・・m(_ _)m
No.1
- 回答日時:
Integer宣言した変数にrequest.querystring("A")
を渡すのはダメですか?
数値として評価可能であればそのまま代入できるはずです。
この回答への補足
早速の回答ありがとうございます。
以下の内容が間違っていたら、指摘お願いします。
私の知る限りでは、
aspの中のVBScriptでは
すべての変数がバリアント型らしく
Integer宣言をできないという認識なのですが・・・
ちなみにInt関数を通してInt(A)という形にすると
数値の足し算の結果は正常に出るようですが
なぜか、Int(A)の形のままでもIf文が
正常に動いていないようです。
それと、大変失礼しましたが、
aspの中のプログラムはVBScriptで書いています。
質問に含まれていなくて、すみませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Java Java 南京錠 2 2023/02/04 11:46
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- Excel(エクセル) Excelの関数についておしえてください。 3 2023/04/20 18:36
- C言語・C++・C# 関数ポインタの高速化のメリット 7 2023/05/05 20:15
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Ruby 初心者プログラミング 3 2022/10/12 11:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Response.Redirectで引数2つの...
-
Tableを動的に増やしたい。
-
GridViewからテンプレートフィ...
-
AutoPostBackにしているが、う...
-
ASPからASPを呼び出す方法
-
【ASP.NET】 ログインコントロ...
-
FileCopy時のエラー
-
C# try-catch でcatchに飛ばす方法
-
VB6でRDOに接続できない
-
VB6でのPL/SQLの実行について
-
CreateObject("Excel.Applicati...
-
オラクル接続をopenしようとす...
-
EXECLマクロでshapeがグルーフ...
-
VBSからのサーバサイドのEXEの実行
-
TCPサーバ bind関数のエラーに...
-
CAsyncSocket::Create()がエラ
-
VBSからPDFファイルを開きたい...
-
エラー内容について
-
ASP.NETで使用しているJavascri...
-
Outlookで添付ファイルの有無を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Response.Redirectで引数2つの...
-
GridViewからテンプレートフィ...
-
SqlDataSource SelectCommand ...
-
ページの更新内容が反映されない。
-
GridView表示の高速化
-
隠しフィールドをVBScriptでの...
-
asp.net でのドロップダウンリ...
-
ASPからASPを呼び出す方法
-
Panelを重ねる方法
-
【ASP.NET】 ログインコントロ...
-
ASPでpingを飛ばす事は、可能で...
-
ASPへのデータの受け渡しについて
-
データの受け渡し
-
ASPでテキストファイルにデータ...
-
データの挿入がされない
-
ASP.NETの拡張子はなぜ「asp」...
-
JavaアプリケーションからHTML...
-
C# try-catch でcatchに飛ばす方法
-
エクセルVBA 宣言Dimの場所
-
FileCopy時のエラー
おすすめ情報