-PR-
解決
済み

HTMLファイル同士での値渡し

  • すぐに回答を!
  • 質問No.95699
  • 閲覧数5750
  • ありがとう数11
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 94% (16/17)

困っています。

HTMLファイルからHTMLファイルへ移動するときに、
HTMLファイル1でJavaScript で算出された値を
HTMLファイル2へ渡して使用したいのです。

showModalDialogだとダイアログにしか渡せないし・・・。
このように、値をそのまま次のページに渡すための方法を教えてください。
お願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル12

ベストアンサー率 75% (398/526)

すみません。うっかりしてました。

document.write(FORM[v1]);
では、v1を変数と認識してしまうので、エラーになってしまいますね。

document.write(FORM.v1);  // 「FORM.v1」です
あるいは
document.write(FORM["v1"]);
としてください。
お礼コメント
LEGO321

お礼率 94% (16/17)

出来ました!うれしーーーです。

v1 の値はこのソースで代入しないからどこから
値が代入されるんだろう??と考えつつも
いろいろ試してもエラーがでてしまうので
document.write(unescape(pair[1].replace("+"," "));
で無理矢理値を出そうとしてしまいました。

でも教えられた通りに直したらすんなり表示されました。
文法の意味をよく考えて勉強していこうと思います。
助かりました。ありがとうございます。
投稿日時 - 2001-06-26 16:52:46
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル12

ベストアンサー率 65% (242/372)

可能ならサーバーサイドスクリプト(Perl, PHP, ASP, JSP等)を利用した方が良いんですけどね(^^;; HTML+JavaScriptなら、好ましくはありませんが Cookieを利用するというのはどうでしょう? ・・というか、これしか思いつきませんでした。 具体的には ■ HTMLファイル1 JavaScriptで計算した値をCookieに保存 ↓ ■ HTMLフ ...続きを読む
可能ならサーバーサイドスクリプト(Perl, PHP, ASP, JSP等)を利用した方が良いんですけどね(^^;;

HTML+JavaScriptなら、好ましくはありませんが
Cookieを利用するというのはどうでしょう?
・・というか、これしか思いつきませんでした。

具体的には

■ HTMLファイル1
JavaScriptで計算した値をCookieに保存

■ HTMLファイル2
Cookieから値を取得して、Cookieを削除

HTMLファイル1から2以外のページに移動した場合
直接HTMLファイル2にアクセスした場合
Cookieをオフにしている場合
JavaScriptをオフにしている場合
Cookieの有効期限の設定値

など色々問題はあるかと思いますが、
このような方法もあるという参考までに
お礼コメント
LEGO321

お礼率 94% (16/17)

ありがとうございました。

Cookieを使う、というのは考えていませんでした。
試しに途中までサンプルを作っていたら、
「クッキーは不可です。」と言われてしまいました。
(業務として作成しています)

でもこのような方法もひとつある、ということで勉強になりました。
ありがとうございます。
投稿日時 - 2001-06-26 15:50:17


  • 回答No.2
レベル12

ベストアンサー率 75% (398/526)

JavaScriptで、パラメータをパースすればOKです。 ■h1.html ○JavaScriptで算出した値を、フォームに用意したhiddenにセットし、GET渡しします。 <body> <form name="h1" action="h2.html" method="get"> <input  ...続きを読む
JavaScriptで、パラメータをパースすればOKです。

■h1.html
○JavaScriptで算出した値を、フォームに用意したhiddenにセットし、GET渡しします。

<body>
<form name="h1" action="h2.html" method="get">
<input type="hidden" name="v1" value="">
<input type="button" name="b1" value="自動算出" onClick="document.h1.v1.value='ABCDE';">
<br>
<input type="submit" value="送信">
</form>
</body>

■h2.html
○<head></head>内で、URLに付加されたパラメータをパースし、配列FORMにセットします。

<head>
<script><!--
var FORM = new Array();
parse();

function parse() {   // 関数にしなくてもいいのですが、一応
  var buffer = location.search.substr(1);
  var pairs = buffer.split("&");

  for (var i in pairs) {
    var pair = pairs[i].split("=");
    FORM[pair[0]] = unescape(pair[1].replace("+", " "));
  }
}
//--></script>
</head>

○<body></body>内の値が必要なところで、document.write()を使います。

h1.htmlから受け取った値は、
<script><!--
document.write(FORM[v1]);
//--></script>
です。

# 日本語を送信する場合、受け取り側でコード変換を行う必要があります。
# コードを見やすくするため、全角スペースを入れている所があります。コピペする場合、注意してください。
補足コメント
LEGO321

お礼率 94% (16/17)

ありがとうございました!

できれば hidden を使って値渡しをしたかったので、
このような方法がわかって嬉しいです。

ただ、h2.html の
document.write(FORM[v1]);
の部分でエラーがでてしまい、表示されません。
試しに上のソースをそのままコピーペーストして実行したのですが
同じでした。
以前見た記事で、 location.search はローカルでは認識しない、と
いうものを見たのですが関係あるのでしょうか・・・?
投稿日時 - 2001-06-26 15:05:41
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ