JavaScriptについて質問です。


HTMLのみであればsubmitでデータを渡したりが可能ですが、動的ページを作成するにあたり画面を遷移することなくサーバーとデータをやり取りしたいと考えております。

単純にリンクをクリックした際にサーバー側に「abc」という文字列を送りたいと思っておりますが以下のものをどのように改変及び付加すれば、それが可能になるのかアドバイスいただけないでしょうか?

<a href="#">abc送信</a>

回答の条件
  • URL必須
  • 1人3回まで
  • 13歳以上
  • 登録:2011/12/29 10:17:52
  • 終了:2012/01/05 10:20:03

回答(2件)

id:Cherenkov No.1

Cherenkov回答回数1502ベストアンサー獲得回数4922011/12/29 11:21:20

ポイント50pt

XMLHttpRequestを使う。
XMLHttpRequest の使い方 - WebOS Goodies


見た目が悪いからjQueryの$.get, $.postを使う。
Ajax - jQuery 日本語リファレンス

<script>
$(function() {
  $('#send_key').click(function() {
    $.get("test.php", { keyword: "abc" } );
  });
}
</script>

<a id="send_key" href="#">abc送信</a>



適当にimgを作ってGETを飛ばす。
http://jsfiddle.net/cherenkov/WVJTV/

<script>
function sendKey() {
  var img = document.createElement('img');
  img.src = 'abc';
}
</script>

<a onclick="sendKey()" href="#">abc送信</a>
id:quocard

回答ありがとうございます。
こちらひじょうに参考になりました。
これを取っ掛かりに広げていきたいと思います。

2012/01/04 09:41:32
id:ymlab No.2

ymlab回答回数506ベストアンサー獲得回数332011/12/29 17:55:41

ポイント50pt

チェレンコフさんがおっしゃるように、Ajaxを使うのが一般的です。
Ajaxとは、(Asynchronous JavaScript + XML)の頭文字を取ったもので、
2005年にこれまでの技術を組み合わせて考えられました。
Javascriptで、サーバに、非同期通信を行います。

具体的な流れとしては、チェレンコフさんが既にお書きですので、
システムの流れを。
1.ユーザが、ブラウザ上で、リンクを押下。
2.ブラウザのjavascriptが、サーバに非同期通信でメッセージを送る。
3.サーバのシステムが、メッセージを受け取りサーバで処理をする。
4.サーバのシステムが、javascriptにメッセージを返す。
5.ブラウザのjavascriptが、画面を更新する。

という具合です。
従って、javascript単体で非同期通信は不可能です。
サーバにそれを待ち受けるPHPやruby,perlなどの何らかの受け取るための
システムが必要です。

私は、
http://www.openspc2.org/JavaScript/Ajax/Ajax_study/
のサイトを見て学習をしました。

また、jQueryやprototypeは、上記の手続きが面倒すぎるので、
それを簡単にするためのライブラリです。
個人的には、jQueryが超便利でお勧めですが、まずは、
普通に書いてみましょう。

id:quocard

回答ありがとうございます。
提示いただいたサイトはとてもわかりやすく参考になりました。
こちらで少し知識をつけてからさらにチャレンジしていきたいと思います。

2012/01/04 09:42:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません