dポイントプレゼントキャンペーン実施中!

今まで、HTMLページ内から、
hrefを使ってcgiへ値を送っていました。
今度から、
hrefには別のリンクを設定して、
cgiに送っていた値は、
aタグがonclickされたらJavaScriptでcgiに送られるようにしたいのですが、
JavaScriptの書き方などがわからなく、困っています。
方法を教えていただけないでしょうか。

また、Hereにはzipファイルをリンクします。
普通にダウンロードのポップアップが出ればよいのですが、
もしページ移動してしまうようなら、
ページは移動しないようにする方法も教えていただけると嬉しいです。

【現状】
<A HREF="test.cgi?name1=cgiに送る値が入ってる">
クリック</A>

どうかよろしくお願い致します。

質問者からの補足コメント

  • ありがとうございます!
    ajaxをキーに検索してみたのですが、
    私が初心者すぎてわからず…
    勉強不足で申し訳ないのですが、
    参考になりそうなページありましたら、教えていただけないでしょうか(T_T)

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/07/29 11:30
  • コード書いてくださって、ありがとうございます!
    私の説明不足で大変申し訳ないのですが、
    JavaScriptの有効無効に関係なく、
    aタグをクリックすると、
    Hereで指定したリンクに飛びつつ、
    今までHereに設定して飛ばしていた値を
    CGIにも飛ばしたいです。
    どうしたら良いでしょうか(T_T)

    No.2の回答に寄せられた補足コメントです。 補足日時:2015/07/29 11:49
  • ポップアップだとうまく行かなかったのですが、こんな方法もあるとかと参考になりました!
    ありがとうございます!

    No.3の回答に寄せられた補足コメントです。 補足日時:2015/07/31 21:19
  • コード書いてくださってありがとうございます!
    教えていただいた内容でテストしています。

    テスト結果がわかるまで、少し時間がかかりそうなので、もう少しだけお付き合いいただけると嬉しいです。

    No.4の回答に寄せられた補足コメントです。 補足日時:2015/07/31 21:22
  • リンク教えてくださってありがとうございます!
    色々な方法があるのですね…!
    ajaxもっと調べて勉強したいと思います!

    No.5の回答に寄せられた補足コメントです。 補足日時:2015/07/31 21:25

A 回答 (5件)

onclick で CGI に送ってからリンク先に飛ぶ簡単なサンプル


CGI から応答が来ない限りは処理が続かないので注意

<script>
function CGIに送る(){
var r = new XMLHttpRequest();
r.open('POST', 'http://cgi.example.com/action', false);
r.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
r.send('a=1&b=2');
}
</script>

<a href="http://www.example.com/data.zip" onclick="CGIに送る()">download</a>

ちなみに、
通常のWebブラウザの設定ならば、zip へのリンクではページ移動はしないはずです。
この回答への補足あり
    • good
    • 0
この回答へのお礼

助かりました

お礼遅くなってしまい申し訳ありません。
皆さんに教えていただいた内容で、なんとかかたちにできました。

お礼日時:2015/09/16 23:46

ANo1です。



>参考になりそうなページありましたら、教えていただけないでしょうか
検索するといろいろヒットすると思いますが、多分、上位10個くらいの中にまともなページが入っているものと思います。
すでに、サンプルコードを載せてくださっている方もいらっしゃるようですので、そちらも参考になるかと。

理解するのが面倒なら、ajaxの機能を持っているライブラリを利用するのもひとつの方法でしょう。
これまたたくさんありますが、とりあえずこの辺りがご参考になるかも。
 http://www.atmarkit.co.jp/ait/articles/0611/22/n …
この回答への補足あり
    • good
    • 0

>Hereで指定したリンクに飛びつつ、


>今までHereに設定して飛ばしていた値を
>CGIにも飛ばしたいです。

厳密には複数のターゲットを開くとポップアップだとみなされる可能性があり
うまくいかないケースもあるでしょうけどとりあえずこんな感じでできるかも

<a href="test.htm" onclick="window.open('test.cgi');return true;">click</a>
この回答への補足あり
    • good
    • 0

こんなかんじ?



<a href="test.htm" onclick="void(location.href='test.cgi');return false;">クリック</a>
javascriptが無効な場合もしくは文法上はtest.htmにとび
javascriptが有効な場合はtest.cgiに飛びます
この回答への補足あり
    • good
    • 0

ここの(別)カテゴリにもありますが、『ajax』(非同期通信)をキーに検索してみてください。

この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!