入力内容の取得・・・ 2003.4.1.Tue No.1612
こんにちは! 初心者の身です・・・
a.html において、
<form action="Request2.html" method="post" ID="request2">
_MCUID<input type="text" name="_MCUID" ID="_MCUID"><br>
<input type="submit" name="post2" value="post2" ID="post2">
</form>
というフォームをつくりました。
これを submit すると、b.html に移動するのですが、b.html には、a.html のフォームに任意に入力した内容がそのまま表示されるようにしたいのです・・・(alertではなくて)
b.html内で
<SCRIPT Language="JavaScript">
<!--
document.write( );
// -->
</SCRIPT>
とするらしいということは分かったのですが、カッコの中に何と入れたらいいのかがわかりません・・・
それとも、上記のソース自体、まちがってるのでしょうか?
全然足りないのでしょうか?
初心者の質問で申し訳ありませんが、よろしくおねがいします。
Re: 入力内容の取得・・・ ぴろあき 2003.4.2.Wed No.1616
「フォーム」はもともとCGIのために作られたので、JavaScript では扱い方がまったく異なります。CGIではフォームの内容を受け取る方法がHTMLの仕様レベルで用意されていますが、JavaScript にはありません。
かといって不可能なわけでもなく、CGIで言うところの「GETメソッド」を使うことができます。掲示板や検索サイトで見るような、URLの尻に付いてる?
以降の不可思議文字列ですね。他にも cookie を併用するなどすれば、POSTメソッドの代替にならないこともないでしょう。
CGIと違うのは、URLの尻に付与される引数を自分で加工しないといけないとこでしょうか。(これが面倒くさいです)
一応、本物のGETメソッドも使えるのですが、文字コードの関係で日本語が入ると難しいです。
これを使うには indexOf()
や substring()
あるいは split()
などを使って、文字列を加工できるスキルが必要です。目安としては「cookieを扱える」くらいでしょうか。
とりあえず簡単なサンプルをさくっと作ってみたんで、感じだけでも。
流れとしてはこんな感じです。
onsubmit
で関数を実行send.html?
以降に付加して JavaScript でジャンプfalse
を返して送信をキャンセル(つまり action
は不使用)send.html
では location.search
を使って引数を取得詳細はソースをご覧ください。
submit
を使うとスクリプトで作った引数が無視されるので実行しません。しかし、Netscape3 より JavaScript オフの方が遥かに多いので、対応させるだけ労力の無駄遣いかも。split
を使ってるので実行しません。IE3なんてすでに絶滅状態にあるので、これまた報われない労力かも。このページは、質疑応答掲示板で使用した回答の残骸です。検索エンジンに捕まったりリサイクルしたりすることもあろうので、なんとなく残してあります。広く公開しているページではありませんが、第3者の閲覧を禁止するものでもありません。
恒久的なURIは保証できないものの、よほどのことがない限り削除されることはないでしょう。心配性な人はページの保存をおすすめします。(IEは mht 形式でないと保存できないかも)