人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ステップに分けてユーザに入力してもらうフォームを作りたいと思っています。
たとえば、ステップ1で、希望商品を選択、ステップ2で、住所と名前を記入して送信というイメージです。
ステップ1で入力した情報をどうやって保持して、ステップ2にいくようにすればよいのでしょうか。JavaScriptで可能なのでしょうか。
たとえば下記の賃貸サイトでは、路線を選択した後、希望の条件を選択するようになっています。
http://www.pitat.com/do/rentSearch?ARAC_CH=D&DPNO_CH=1,2,4,6&searchCategory=RENT&searchThingType=APARTMENT&searchWay=LINE&areaCD=

よろしくお願いたします。

●質問者: warumaki
●カテゴリ:インターネット ウェブ制作
✍キーワード:JavaScript イメージ サイト ステップ ユーザ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● GoldenDawn
●27ポイント

http://www.tohoho-web.com/wwwcook.htm

cookie を使います。

PHP などではセッション変数を使ったりもします。


2 ● y-kawaz
●27ポイント

情報を複数ページで持ち回るに方法は大きく分けて2つあります。


上記2つはともにサーバ側での処理が必要ですが、静的HTMLとJavascriptで実現することも出来なくはありません。例えば以下のような方法が考えられます。

などの方法が考えられます。

http://q.hatena.ne.jp/answer

◎質問者からの返答

ご回答ありがとうございます!

-------------

フォームのmethodを指定しない(GETにしておく)と入力値は次ページのURLに ?foo=bar という形で引き継がれるので、

Javascriptでそれを取得して利用する。

-------------

上記のやりかたでトライしてみる場合、「Javascriptでそれを取得して利用する」というのがよくわかりません。

Javascriptではどのような関数を指定するのでしょうか。


3 ● y-kawaz
●26ポイント

URLの?以降の文字は location.search に入るのでそれを適当にパースしてやればパラメータの値が取得できます。

例えば次のようなJavascriptの関数を書いておけば、

function parseQuery(query) {
 var params = {};
 if(location.search) {
 var pairs = location.search.substring(1).split("&");
 for (var i = 0; i < pairs.length; i++) {
 var kv = pairs[i].split("=");
 params[decodeURIComponent(kv[0].replace(/\+/g, ' '))] = kv[1] ? decodeURIComponent(kv[1].replace(/\+/g, ' ')) : '';
 }
 }
 return params;
}

以下のようにしてパラメータ foo の値が取得できます。

var params = parseQuery(location.search);
alert(params['foo']);

但しよほどの制限(静的ファイルしか利用できないなど)が無い限り、これは奇手に属すると思うので、通常はまず上に上がっているセッションやクッキーやhiddenを検討します。

http://q.hatena.ne.jp/answer

◎質問者からの返答

ありがとうございます。

セッションやクッキーやhiddenを検討してみて、

それから、教えていただいたやり方を試してみたいと思います。

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ