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

POST送信をフォームの送り先とは別のページにも送りたいのですが、どうすればよいのでしょうか?

具体的には
カテゴリ選択ページ

メインページ

検索機能ページ

の三種あり

カテゴリを選択して
メインページに飛ぶ
メインページではjQueryのロードにより検索機能ページを読みんでおり、そのカテゴリのみの検索結果を表示する

ことをしたいのですが

カテゴリを選択するためのIDをメインにPOST送信しても、検索機能ページには送られてないので検索結果には反映されません

カテゴリから検索機能ページに送るようにすれば動くようにはなっています。

セッションなら、いけるかなと思いセッションを使ってみましたがダメでした。

カテゴリからメインに送られたPOST情報をうまく送るにはjavascriptを利用するとは想像できるのですが、buttonにonclickというやり方しかわかりません
アクションを起こさず検索機能ページにPOST情報を送るにはどうすばよいのでしょうか?

Javascriptのコードつきでよろしくお願いします。

●質問者: robopit
●カテゴリ:ウェブ制作 学習・教育
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Cherenkov
ベストアンサー

質問文が複雑なのでよく読んでいませんが(逃げ道)、複数ページにPOSTせずに済む解決策もあるような感じがします。
動くものを提示したほうが回答しやすいです。

複数POSTするだけなら、

$('#form').submit(function(){
 $.post("test.php", { name: "John", time: "2pm" } );
});

のようにすれば#formのsubmit前に別のページにpostすることができるかと。


参考:


robopitさんのコメント
回答ありがとうございます 初歩的な質問でもうしわけないのですが #formはdivのid名だと認識していたのですがフォーム名でも大丈夫ということでしょうか? それともフォームをdivで囲うということなんでしょうか?

Cherenkovさんのコメント
>#formはdivのid名だと認識していたのですが そんな決まりはありません。#formというセレクタ表現はid属性がformな要素にマッチします。 #formは適当な例で使っただけです。フォームに当てはまるセレクタに置き換えてください。

robopitさんのコメント
やってみたのですがうまくいきませんでした。 少しいじってHTML出力をしてみたらうまくいったので 書き間違いをしているわけじゃないと思うのですが お手数掛けますがコードをチェックお願いできますのでしょうか https://gist.github.com/7d0f4398fa693e514243

robopitさんのコメント
main.phpに $(document).ready(function(){ var category = ""; $("#tate").load('search_base.php',{ categoryS_id:category}); }); これで表示することはできたのですが 他の機能などでページを読み込むと消滅します。 変数の値を維持するにはどうすればよいのでしょうか?

Cherenkovさんのコメント
変数の値を維持の意味がわからないので答えられません。全体の流れを整理してコメントに書けば誰かが回答してくれるかも。

robopitさんのコメント
そのままです。 echo categoryS_id をmain.phpに貼っとくと main.phpがはじめて表示される時は表示されますが 他のsubmitを押すなどして再読み込みされると消えます

Cherenkovさんのコメント
・回答1のようにsubmit時に再びpostする。 ・cookieから読み込む。 ・DBから読み込む。 とか

robopitさんのコメント
cookieに変数を入れようとすると エラーを出すので調べて見ると setcookieを使う場合はあらゆる出力より前に送信される必要があるとかで 変数を入れるという行為がいけないようなのですが、このような場合はクッキーの使用は無理ですかね?

Cherenkovさんのコメント
setcookieは使った事無いのでわかりません。cookieはjavascriptからも使えます。
関連質問

●質問をもっと探す●



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