facebookの「いいね」ボタンのように、押下されたらページ遷移なしで押されたことが反映される機能を実装したいです。

htmlの表示を変えるだけなら分かるのですが、データベースにも押下の内容を反映したいです。データベースにアクセスするのは、一度formでsubmit等してpostされたものをPHP等で受け取ってDBに入れる、というやり方しか分かりません。
どのようにすれば、facebookの「いいね」ボタン(に限りませんが)のようにページ遷移なしで出来るのでしょうか?(あれもDBにその場で反映しているのですよね)

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/10/06 20:07:33
  • 終了:2011/10/13 20:10:03

回答(2件)

id:tdoi No.1

tdoi回答回数174ベストアンサー獲得回数752011/10/06 21:27:37

ポイント50pt

多くの場合、JavaScriptを利用してバックグラウンドでサーバと通信しています。

小難しく書くと、

1.ブラウザがサーバからHTMLデータを取得

2.取得したHTMLデータをブラウザが表示

3.表示されたボタンをユーザがクリック

4.クリックすると、HTMLデータに仕込まれたJavaScriptのコードが起動する

5.JavaScriptのコードは表示とは別にバックグラウンドで動作し、サーバへデータを投げる

6.必要があれば、サーバへ投げた結果を受け取り、表示しているHTMLデータを書き換える

7.HTMLデータを書き換えることで、ボタンの状態表示が変化する。

というような手順です。

Ajaxとか、JavaScript HTTPとかそんなキーワードで検索すると、参考になるサイトが色々と出てくるかと思います。

何かの参考になれば。

id:cooper0524 No.2

cooper0524回答回数296ベストアンサー獲得回数42011/10/06 22:48:33

ポイント50pt

上記の方が回答していますが、Ajaxの技術を使います。

ボタンが設置してあるのはHTML上でいいですが、クリックするとsubmitではなくJavascriptで別のPHPのようなプログラムにアクセスし、DBを書き換えます。

そのPHPで結果をjson形式のような形で返し、javascriptで受け取ってHTMLを書き換えます。

javascriptであれば画面の移動は無くHTMLを書き換えることができます。

jQueryを使うとJavascriptを書く部分が簡単になって良いかと思います。

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

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

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

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

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