- ベストアンサー
変数の受け渡し方法とは?
- 質問者は、他のサイトのページ遷移に伴うページIDの引き継ぎ方法について教えてほしいと質問しています。
- a.htmlにはJavaScriptが貼られており、getQueryString関数を使ってURLのクエリパラメータを取得し、cgmId関数でそれらの値をメールフォームのページ(b.html)に引き継いでいます。
- しかし、質問者が試した方法ではうまくいかなかったため、正しい書き方を教えてほしいとしています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
これでどうですか。 【A.html】 <html> <head> <title>A.HTML</title> <script type="text/javascript"> window.onload=function(){ document.links[0].href+="?"+window.location.search.substring(1); } </script> </head> <body> <a href="b.html">b.html</a><br> </body> </html> 【B.html】(メールフォーム) <html> <head> <title>B.HTML</title> <script type="text/javascript"> window.onload=function(){ var query=window.location.search.substring(1); document.links[0].href+="?"+query; var parms=query.split('&'); for (var i=0;i<parms.length;i++){ if(parms[i].match(/(\w+)=(\w+)/))document.forms[0].elements[RegExp.$1].value=RegExp.$2; } } </script> </head> <body> <a href="a.html">a.htmlへ戻る</a><br><br> <form method="post" action="mail.cgi"> <input type="hidden" name="cid"> <input type="hidden" name="bid"> </form> </html>
その他の回答 (4)
- okmotokun
- ベストアンサー率59% (92/155)
思い違いでした。 リロードしても消えることはないですね。
補足
ご回答有り難うございます。 色々何か良い解決策はないかと 調べているのですが、中々見つかりません。 cookieを使わなくてもいけるのでしょうか。 普通に A.html > B.html > C.html と遷移すれば、引き継げるものなのでしょうか?
- okmotokun
- ベストアンサー率59% (92/155)
【他サイト】 <a href="http://yourdomain.jp/a.html?cid=xxx&bid=yyy"> ↓ 【a.html】 <a href="http://yourdomain.jp/b.html?cid=xxx&bid=yyy"> ↓ 【b.html】(メールフォーム) <input type="hidden" name="cid" value="xxx"> <input type="hidden" name="bid" value="yyy"> (1)他サイトから a.htmlへのリンクタグのパラメータとして送られてきた cid、bidを (2)a.htmlの b.htmlへのリンクタグのパラメータとしてセットし (3)a.htmlのリンクから b.htmlがリクエストされたらメールフォームの inputタグの入力値としてセットする で、(2)(3)をjavascriptで実現したい、ということですね。 1つ問題なのは、(1)(2)(3)のどこかでリロードしたら cid、bid は消えてしまうってことです。cookieを使えばいいのかな。
- okmotokun
- ベストアンサー率59% (92/155)
他サイトから、 http://yourdomain.jp/a.html?cid=xxx&bid=yyy として、a.html がリクエストされるんですよね。 次に、b.html はどういう方法でリクエストするんですか。 他サイト > a.html > b.html ですと、他サイトから a.htmlで受け取った cid、bid を a.htmlから b.html に渡す処理が必要ですが・・・。
補足
ご連絡ありがとうございます。 a.htmlからb.htmlへは、 リンクボタンでb.htmlへと遷移する形です。 その際に何か処理を加えるスクリプトがあるのでしょうか?
cgiのカテゴリなのに、言語が記載されていないので、もしかしてJavaScriptだけでやりたいのでしょうか? それなら、こちらが参考になるかと…。 http://f32.aaa.livedoor.jp/~azusa/index.php?t=js&p=location4
補足
すみません、 自分でもよく分かってない部分でやっていて 説明にかなり難があるのですが、 あるサイトからの訪問者に特定するIDがついてくるので、 javascriptで、IDを保持して、次のcgiを使ったメールフォームページで 入力時にIDを引き継ぐということなんです。 そしてcsvに書き出します。 参考サイト有り難うございます。 ちょっとよく見てみます。宜しくお願い致します。
お礼
okmotokun様 根気づよくお付き合い頂き、誠に有り難うございます。 何度もすみません。 頂いたコードを試してみました。 うまく行きそうです。 先方の提供して来た訪問者用のコードにこちらの認識と少し違いが あったようなので、その辺りをクリアすれば行けるのではないかと 思います。 ここ数日パニックになってました。 今日、やっと知り合いにこの辺りのことが分かる人が 見つかりそうになりましたので、 その方に今回頂きましたスクリプトを含めて相談させて頂きます。 聞きっぱなしで大変申し訳ありませんでした。 本当に有り難うございました。