• ベストアンサー

URLのアンカーをCGIに渡したい

<!-- document.write (location.hash); // --> 上記の方法で、現在ページURLのアンカー(#aa)がブラウザに表示されています。 ***html#aaの「#aa」部分をAnchor.cgiに 引き渡したいのですが方法がわかりません。 ご教授の程宜しくお願い致します・・・m(_ _)m できれば、送る側と受け取る側の両方を 具体的に記述して頂けると助かります・・・(^^ゞ

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

なにをトリガーにしているかによってやり方が違うでしょう。 javascriptでlocation.hrefかなにかでget渡しするなら Anchor.cgi?hash=・・・となるようにlocation.hashを たしこんでやればいいでしょうし formわたしであればhiddenに値をいれてしまえばいいでしょう。 パラメータわたしがいやならリファラでできるかも・・・

good148
質問者

お礼

http://time3.sakura.ne.jp/sub/cgi/page3.html 窓を細くして見ていただくと縦に並びます。 やっと出来たようです・・・・・・(^^) >html#01のアンカー部分#01が受け渡せていません。 #01の「#」がperlの特殊記号に判定されて認識されなかったようです。 それで「01」部分だけ受け渡すようにしたら、上手くいったようです。 JavaScriptの記述部分は参考サイトからコピペしたものですので 半分ほどしか意味はわかっていませんが、まあいいです・・・(^^ゞ 前回の質問に続き回答して頂き有り難うございました・・・m(_ _)m カンシャ!

good148
質問者

補足

回答有り難うございます。 データを受けるCGI側は次の通りです。 use CGI; my $q = CGI->new(); my $url = $q->url; print "<p>url:$url</p>\n"; if ($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN, $alldata, $ENV{'CONTENT_LENGTH'}); } else { $alldata = $ENV{'QUERY_STRING'}; } print "<p>変数:$alldata</p>\n"; print "<p>リファラ:$ENV{'HTTP_REFERER'} \n"; 送り側は、リンク貼っておきます。 http://time3.sakura.ne.jp/sub/cgi/page1.html html#01のアンカー部分#01が受け渡せていません。 窓を細くして見ていただくと縦に並びます。 form渡しは、送信ボタンを押さないと渡せないようです。 そこで流れが一旦止まってしまいますので考慮外です。 送信ボタンを押さなくても渡せるのであればいいのですが。

関連するQ&A