- PR -

ASPX→ASP POSTで値を渡したい

投稿者投稿内容
お亀
会議室デビュー日: 2006/03/28
投稿数: 11
投稿日時: 2006-04-19 15:57
いつもお世話になっています。

今作っているASP.NETのファイルから、既存のASPのページにPOSTで値を渡したいです。

↓ASPXファイル↓
〜〜〜前略〜〜〜
<form id="Form1" method="post" runat="server">
〜〜〜中略〜〜〜
<INPUT id="aaaa" type="hidden" value="">
</form>
<SCRIPT LANGUAGE="VBScript">
function move_page()
document.Form1.aaaa.value="AAAA"
option1="width=1000,height=600"
window.open "","NEXT",option1
document.Form1.method = "post"
document.Form1.target = "NEXT"
document.Form1.action = "next.asp"
document.Form1.submit()
end function
</SCRIPT>
↑ASPXファイル↑

↓ASPファイル↓
<%@ Language=VBScript %>
<%
Dim A
A = Request.Form("aaaa")
%>
<html>
<head>
</head>
<body>
A=<%=A%>
</body>
</html>
↑ASPファイル↑


このように書いたのですが、ページは開けても値を取得できませんでした。
ASP.NETでは自分自身にPOSTしてしまうようですが、それが関係しているのでしょうか。
周りに相談をしても「ASP.NETとか関係なく何か間違ってるんでしょ」と言われてしまって…。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-04-19 16:42
サブウインドウを開いてから値を引き渡していますが
まずそのウインドウでためされてはいかがでしょうか

コード:
 document.Form1.aaaa.value="AAAA" 


にある aaaa は Form1 上に配置されている input 要素ですよね

#ASP.NETのバージョンはいくつでしょうか
#2.0では別サイトにポストする方法があったと思うのですが
お亀
会議室デビュー日: 2006/03/28
投稿数: 11
投稿日時: 2006-04-19 16:54
お返事ありがとうございます。

>まずそのウインドウでためされてはいかがでしょうか
最初にターゲットを指定せずにやったのですが、無理でした。
別ウィンドウならいけるかな?などとためし中です。

>aaaa は Form1 上に配置されている input 要素ですよね
そうです。

>ASP.NETのバージョン
VS2003なので、1.1…ですよね?
2.0の方法ってこれですか?
http://www.atmarkit.co.jp/fdotnet/dotnettips/406asppostback1/asppostback1.html
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-04-19 17:02
いちおうこんな感じでできましたけど、
なにがちがうのかな?
コード:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title title="postのテスト" />
    <script type="text/javascript">
    function postAneterPage() {
      window.open("","NEXT","width=1000,height=600");
      document.form1.action = "aspPage.asp";
      document.form1.target = "NEXT";
      document.form1.method = "post";
      document.form1.submit();
    }    
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <input id="cmdPost" type="button" value="button" onclick="postAneterPage()" />
    </form>
</body>
</html>



コード:
<%@ Language=VBScript %>
<%
Dim A
A = Request.Form("TextBox1")
%>
<html>
<body>
A=<%=A%>
</body>
</html>

todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-04-19 18:10
引用:

周りに相談をしても「ASP.NETとか関係なく何か間違ってるんでしょ」と言われてしまって…。



ここのことでしょう。間違っているというより何か足りない。

引用:

<INPUT id="aaaa" type="hidden" value="">




[ メッセージ編集済み 編集者: todo 編集日時 2006-04-19 18:15 ]
お亀
会議室デビュー日: 2006/03/28
投稿数: 11
投稿日時: 2006-04-19 18:12
お返事ありがとうございます。

>なにがちがうのかな?
「Web フォーム」のコントロールを使っている部分ではないでしょうか。
確かにテキストボックスを使うとPOSTすることができました。
<INPUT>ではPOSTできませんでした。

しかし、テキストボックスはINPUTのように
document.Form1.aaaa.value="AAAA"
というような代入をすることは出来ないですよね?
(一応やろうとしてみて出来なかった)
Web フォームの値を変えられるのはサーバーサイドだけなのでしょうか。
隠し要素にして、操作によって値を変えたいので
hiddenのINPUTのように使いたいのですが、何か方法はないでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-19 18:15
ページが表示された時の HTML を見たことがありますか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-04-19 22:47
引用:
>なにがちがうのかな?
「Web フォーム」のコントロールを使っている部分ではないでしょうか。
確かにテキストボックスを使うとPOSTすることができました。
<INPUT>ではPOSTできませんでした。

では、まず「できました」のときと「できませんでした」の時のHTML出力を見比べてみればいいのです。

引用:
しかし、テキストボックスはINPUTのように
document.Form1.aaaa.value="AAAA"
というような代入をすることは出来ないですよね?

普通はできますよ。「INPUTのように」というかテキストボックスは普通INPUTになりますから。

引用:
隠し要素にして、操作によって値を変えたいので
hiddenのINPUTのように使いたいのですが、何か方法はないでしょうか。

これはVisibleをFalseにしているということですか?であれば
document.Form1.aaaa.value="AAAA"
のようなことはできません。VisibleがFalseのTextBoxは
type=hiddenのINPUTを出力するわけではないからです。

スキルアップ/キャリアアップ(JOB@IT)