ボタンを押した際にメソッドを呼びたい

このQ&Aのポイント
  • ボタンを押した際にメソッドを呼びたいのですが、うまくいきません。
  • 無理やりな感があるので、より上手な方法はないでしょうか。
  • また、ボタンを押した後に確認メッセージを表示し、OK/Cancelで処理を行いたいです。
回答を見る
  • ベストアンサー

ボタンを押した際にメソッドを呼びたい

ボタンを押した際にメソッドを呼びたいのですが、うまくいきません。 現在は以下のように、Requestで判断させています。 (仮にTest.aspとした場合) Private Sub Main … Response.Write "<form method =""post"" action =""Test.asp""">" & vbCrLf Response.Write "<input value = ""テスト"" type=""submit"" name = ""test""> 'ボタンが押されたか判定 If Request.Form("test") <> "" Then Call Action() End Sub Private Sub Action 'DBへの接続、データ取得処理など … End Sub とりあえず動作はしますが、無理やりな感が…もっと上手いやり方はないでしょうか。 また、できればボタンを押した後に確認メッセージをだして、OK/Cancelで処理を行うか 確認したいんですが、その方法も併せてご教授いただけるとありがたいです。 宜しくお願いします。

  • ginfix
  • お礼率34% (330/962)

質問者が選んだベストアンサー

  • ベストアンサー
noname#259269
noname#259269
回答No.1

>ボタンを押した際にメソッドを呼びたいのですが、うまくいきません 今のやり方でよいのでは? ASPファイルはサーバ側で実行され、ブラウザ側は HTML になりますから、ボタンを押したというアクションをサーバ側になんらかの形で伝えるしかありません。Ajaxを利用するという手もあります。 確認メッセージはブラウザ側で表示させる事になるので、JavaScript を使いましょう。 クライアント側で例えば以下のような HTML が構成されるように Response.Write してください。 <input value="テスト" type="submit" name="test" onclick="if (!confirm('実行しますか?')) return false;"/>

その他の回答 (1)

  • onos
  • ベストアンサー率81% (127/155)
回答No.2

ボタンが押されたかどうかの判断はこのような方法しかないでしょうね。 ASP.NETの場合、このあたりうまく隠されていますが、やってることは同じようなことだと思います。 > できればボタンを押した後に確認メッセージをだして、OK/Cancelで処理を行うか確認したいんですが これはJavaScriptで実装するしかありません。 ボタンのクリック時にconfirmメソッドを呼び出すような形にします。

関連するQ&A

  • 押下ボタンによってSubmit先を変えたい・その2

    つい先日、解決ソースを頂きましたuinonaです。 教わったソースを試した所、SubmitボタンにNameを付けているのに、 何も入っていないんです。(押されたボタンを受信側で判別出来ない) SubmitのName属性さえ付ければ複数Submitボタンの判別は可能なはずなのに、 なぜなのでしょうか?なにか設定等あるのでしょうか?またまた困ってしまいました。 ご回答の程よろしくお願いします。 <!-- aaa.asp --> <form action="aaa2.asp" method="post"> <input type="hidden" name="field" value="test"> <input type="submit" name="btnQ" value="Q"> <input type="submit" name="btnZ" value="Z"> </form> <!-- aaa2.asp --> <% If Len(Request.Form("btnQ")) > 0 Then ←※ Server.Transfer "bbb.asp" Else Server.Transfer "ccc.asp" End If %> ※"btnQ"を押下しているのにLen(Request.Form("btnQ"))=0なんです・・

  • セッション

    セッションについて教えて下さい。 指定のID、パスワードでログインしようと思っています。 ソースを記載しますので、お教え下さい。 ID:aaa パスワード:111とします。 [送り側フォーム] <form action="/test2.asp" method="POST" id=form1 name=form1> <input type="text" name="id" value=""><br> <input type="password" name="passwd" value=""> <input type="submit" value="LOGIN" id=submit1 name=submit1> </form> とし、 [受け取り側、認証 test2.asp ] <% If Session("user_test") <> "1" Then Response.Redirect "/test.asp" Response.End() End If %>ここで認証を判断し、認証できなければtest.aspへもどるとし、 Dim id, passwd id = Request.Form("id") passwd = Request.Form("passwd") Session("user_login") = "id" Session("user_login") = "passwd" IF id = "aaa" and passwd = "111" THEN Session("user_test") = 1 Response.Write ("OK") ELSE Response.Write ("ちがうよ") END IF %> ID、パスワードをセッション変数にいれ、各ページで認証すると言う事をやりたいのですが、うまくいきません。 どこがわるいか、お教え下さい。 ※以前にも似たような質問をしているのですが、改善されずお手上げです。

  • 押下ボタンによってSubmit先を変えたい

    いつもお世話になってます aaa.aspにQボタン(Submit)、Zボタンbutton、と FORMがあります。 Qボタンを押された時はbbb.aspにSubmitしたい、 Zボタンを押された時はccc.aspにSubmitしたい、 だがしかしFormのActionにはSubmit先が一つしか書けないですよね。 どちらのASPにもFormの内容を送りたいのです。 このような処理は可能なのでしょうか? 教えて下さい。

  • submitの値取得に

    sea_clear_skyです。 [環境] Win98SE PWS フォームに名前が同じ二つのサブミットのボタンを作成します。 そして、飛んだ先のASPのファイルで、サブミットのボタンのV ALUEの値で、IF文で、処理を分岐したいのですが、 Reqest("サブミットボタン名.Value")で 値を取得することができません。 また、hiddenのボタンを作り、サブミットの値を入れて移していますが うまくいきません。 ご教授願います。 [ソース] Response.write"<form action =""ASPファイル"" method=""POST"">" フォームの中身は省略 Response.write"<input type=""submit""value=""更新"" name=""syouhin"">" Response.write"<input type=""submit""value=""次へ"" name=""syouhin"">" Response.write"<input type=""reset""value=""リセット"" name=""syouhin"">" Response.write"<input type=""hidden"" name=""kakushi""value=""&syouhin.value&"">" 飛んだ先のASPファイルのデータ表示 response.write request("shouhin") response.write request("kakushi")

  • ASPでHTMLの内容を取得するには??

    HTMLのテキスト1のテキストボックスはOnClickイベントで文字列を取得し表示させてます。 テキスト2のテキストボックスに文字列を入れてその文字列をtest.aspで取得させてます。 test.aspでもテキスト1の内容を取得する方法はありますでしょうか?? formの入れ子はできないし、1つのform内でテキスト1、テキスト2を入れると OnClickイベントがきかなくなります。 わかる方おりましたらご教示ください>< 宜しくお願い致します。 ------ aa.html ---------------- <html> <head> <title>ASP TEST </title> </head> <body> <form name="fm1"> <td> <p>テキスト1:<input type="text" name="pathTXT" size="40"> <input type="button" name="fileBT" value="選択"> </p> </td> </form> <form action="test.asp" method="post"> <td> <p>テキスト2:<input type="text" name="keyTXT" size="40"> <input type="submit" value="実行"> </p> </td> </form> </body> </html> <SCRIPT LANGUAGE="vbscript"> Sub fileBT_OnClick() Document.fm1.pathTXT.value = "aaaaaaaa" End sub </SCRIPT> ------ test.asp ---------------- <%@LANGUAGE="VBSCRIPT"> <% Response.Write(Request.Form(keyTXT)) '''↓↓↓↓↓↓↓↓↓ aa.htmlのpathTXTを取得したい。。。 Response.Write(Request.Form(pathTXT)) >%

    • ベストアンサー
    • HTML
  • フォームのValue値

    万年カレンダーを作ってるのですが、やりたいこととしてはform内のバリュー値を、if文で変数(日付)に変更してそれをFrom内のバリューに置き換えたいのですが、ifででた変数がValueにおきかえれません。 <form method="POST" action="jan_Edit.asp" id=submit> <!--<input type="hidden" name="HDN" Value =<% = SBMT %> >--> <input type="submit" value="PreviousYear" id=SUB1 name=SUB1> <input type="submit" value="PreviousMonth" id=SUB1 name=SUB1> <input type="submit" value="ThisMonth" id=SUB1 name=SUB1> <input type="submit" value="NextMonth" id=SUB1 name=SUB1> <input type="submit" value="NextYear" id=SUB1 name=SUB1> </form> dim SUB1 SUB1 = Request.querystring("SUB1") if SUB1="ThisMonth" then Response.Write("AA<br>") SUB1 = "" elseif SUB1="PreviousYear" then Response.Write("bb<br>") SUB1=YY1 ' YY1は去年です elseif SUB1="PreviousMonth" then Response.Write("cc<br>") SUB1=MM1 'MM1は一か月前です elseif SUB1="NextMonth" then Response.Write("dd<br>") SUB1=MM2 'MM2は一か月後です elseif SUB1="NextYear" then Response.Write("ee<br>") SUB1=YY2 'YY2は一年後です end if

  • <FORM> </FORM> の中に さらに <FORM> </FORM>があるときのSUBMITボタンについて

    今、 <FORM ACTION="aaa.asp" METHOD="POST" Name="form1"> <input type="SUBMIT" value="ボタン1"> <FORM ACTION="bbb.asp" METHOD="POST" Name="form2"> <input type="SUBMIT" value="ボタン2"> </FORM> </FORM> としていて、ボタン2を押すとbbb.aspに 飛んでほしいのでに、aaa.aspに飛んでしまいます。 こういう場合どのようにすればよいのでしょうか? それぞれのボタンは hidden の値をそれぞれの フォームの中の値を渡したいので どうしてもSubmitがいいのです。

    • ベストアンサー
    • HTML
  • ページング値渡しについて

    sea_clear_sky8です。 [環境] OS 98SE PWS [質問内容] ページングの値渡しの際がうまくいきません。 忙しいところすいませんがよろしくお願いします。 次のページっていうのをボタンで作って、次の10件が表示させるように させたいのです。 下記ソースのvar frm = document.GetElemntById("myForm");の部分で オブジェクトでサポートされていないプロパティまたはメソッド ですとエラーがでます。 それからコンパイル後、SQLエラーと表示されます。 このSQLエラーというのは下記ソースのエラー処理で行っている SQLエラーというのが表示されています。 [ソース] [bunkatsu1.html] <html> <body> <form action="bunkatsu1.asp" method="post"> 名前:<input type="text" name="nm"> <input type="hidden" name="page_num" value="0"> <input type="submit" name="exec" value="検索"> </form> </body> </html> [bunkatsu1.asp] <html> <script type="text/javascript"> <!-- function myClick() { var frm = document.GetElemntById("myForm"); frm.action ="bunkatsu1.ASP"; frm.method= "get"; frm.submit(); } // --> </script> <body> <% On Error Resume Next Dim DB,CMD,RS,AllCnt '接続処理 Set DB = Server.CreateObject("ADODB.Connection") DB.Open "mysql" If Err.number <> 0 then Response.Write "接続エラー" Response.End End If ' LIMITを使ったSELECT文を実行 Set CMD = Server.CreateObject("ADODB.Command") CMD.ActiveConnection = DB CMD.CommandText = "select * from test_t " & _ "where name like '%" & Request("nm") & "%' " & _ "order by id " & _ "limit " & Request("page_num")*10 & ",10" Set RS = CMD.Execute If Err.number <> 0 then Response.Write "SQL実行エラー" Response.End End If ' 結果出力 Response.Write "<table border=1>" Response.Write "<tr><td>id</td><td>name</td></tr>" Do Until RS.EOF Response.Write "<tr>" Response.Write "<td>" & RS("id") & "</td>" Response.Write "<td>" & RS("name") & "</td>" Response.Write "</tr>" RS.MoveNext If Err.number <> 0 then Response.Write "次データ取得エラー" Response.End End If Loop Response.Write "</table>" ' 検索条件に該当する全データの件数取得 CMD.CommandText = "select count(*) from test_t " & _ "where name like '%" & Request("nm") & "%' " Set RS = CMD.Execute If Err.number <> 0 then Response.Write "SQL実行エラー" Response.End End If AllCnt=RS(0) ' ページ数表示 if AllCnt>10 then Response.Write Abs(Int(-1*(AllCnt/10))) & "ページ中の" Response.Write Request("page_num")+1 & "ページ目を表示<br>" end if ' 前の10件 if Request("page_num")<>0 then end if ' 次の10件 if ((Request("page_num")+1)*10) < AllCnt then response.write "<form id=""myForm"" method=""post"">" response.write "<input type=""Submit"" value=""次の10件&gt;"" onclick=""myClick();"">" response.write "<input type=""HIDDEN"" name=""num"" value=""&request(""num"")&"">" このTEXTボックスはHIDDENのNUMに何が入っているか確認するための ものです。 response.write "<input type=""text"" name=""test"" value=""&=request(""num"")&"">" response.write "<input type=""HIDDEN"" name=""page_num"" value=""&request(page_num)+1&"">" このTEXTボックスはHIDDENのPAGE_NUMに何が入っているか確認するための ものです。 response.write "<input type=""text"" name=""test1"" value=""request(page_num)+1&"">" response.write "<input type=""submit"" value=""更新"">" response.write "</form>" end if ' レコードセット解放 RS.Close ' 切断 DB.Close ' オブジェクト解放 Set CMD=Nothing Set RS=Nothing Set DB=Nothing %> </body> </html> 忙しいところすいませんが、ご教授願います。 よろしくお願いします。

  • Ifが正常に動作しない。

    下記のコードで、login.htmlからデータを適当に入力し てかえってくる処理が全て、空の表示になってしまう。 Ifが正常に動作しません、正常に動作するようにするにはどうすればいいのでしょうか? <login.html> <html> <body> <table> <tr> <td>id:</td> <td><input type="text" name="id"></td></tr> <tr><td>password:</td> <td><input type="password" name="pass"></td></tr> </table> <form methed="post" action="http://session.asp"> <input type="submit" name ="sb" value="login" > </form> </body> </html> session.asp <html> <body> <% if session("id")="" Or session("id")= null then if request("pass")="" Or request("id")= null then response.write "空" elseif request("pass")= "1234" then session("id")="login" response.write "ログインしました。" else response.write "違う" end if else response.write "ログインしました" response.write session("id") end if %> </body> </html>

  • 確認画面を出す

    こんにちは。早速ですが現在下記のようなメールフォームを作成しているのですが、 <% 'On Error Resume Next If Len(Request("name")) = 0 then Response.Write "お名前が入力されていません。" & "<br>" Response.Write "前ページへ戻るボタンを押して下さい。" & "<br>" Response.Write "<br>" Response.Write "<input type='button' value='前ページへ戻る' onclick='JavaScript:history.go(-1);'>" & "<br>" ElseIf Len(Request("mail")) = 0 then Response.Write "メールアドレスが入力されていません。" & "<br>" Response.Write "前ページへ戻るボタンを押して下さい。" & "<br>" Response.Write "<br>" Response.Write "<input type='button' value='前ページへ戻る' onclick='JavaScript:history.go(-1);'>" & "<br>" ElseIf Len(Request("message")) = 0 then Response.Write "お問い合わせ内容が入力されていません。" & "<br>" Response.Write "前ページへ戻るボタンを押して下さい。" & "<br>" Response.Write "<br>" Response.Write "<input type='button' value='前ページへ戻る' onclick='JavaScript:history.go(-1);'>" & "<br>" else 'メール送信 Set bobj = Server.CreateObject("basp21") ' ASP svname = "xxxx" ' <== smtp サーバマシン名 mailto = "xxxxx" ' 宛先 mailfrom = "xxxxx" '差出し人 subj = "お問い合わせフォームより" ' 件名 body = "お名前      :"& Request("name") & vbCrLf _ & "電話番号     :"& Request("phone") & vbCrLf _ & "メール      :"& Request("mail") & vbCrLf _ & "お問い合わせ内容 :"& Request("message") & vbCrLf file = "" rc = bobj.SendMail(svname,mailto,mailfrom,subj,body,file) if rc <> "" then ' エラーチェック 'エラー! Response.Write "エラーで送信できませんでした。" & rc & "<br><br>" else Response.Write "お問い合わせありがとうございました。" & "<br>" Response.Write "メールを確認次第ご連絡させていただきます。" & "<br>" end if end if %> ここで入力させた内容を一度確認画面を出して、送信を行いたいと思うのですが、フォームの引き継ぎ方が分かりません。 どうぞ皆様のお力をお貸し下さい。 宜しくお願いします。

専門家に質問してみよう