2010-12-13 21 views
0

ユーザーには「follow」ボタンが表示され、クリックするとデータベースレコード(userIDとpageID)が作成されます。私はバックエンドでクエリを処理します。私はAJAXでそれを行う必要があると思うが、私はAJAXで多くのことをしていない。また、ボタンの状態をFOLLOWからFOLLOWING(または同様のもの)に更新すると、バックグラウンドで要求が処理されている間に、jQueryで何らかの切り替えを行うことができます。機能を追加する必要があります

私はこれで正しい軌道に乗っていますか?

+0

これは問題ありません。私が改善する唯一のことは、AJAXリクエストからデータベースが正しく更新されたという確認を得るまで、「FOLLOW」を「FOLLOWING」に変更しないでください。処理中にスピナーを表示するだけで済みます。それ以外は、これはかなり簡単です。それを実装するための助けが必要ですか、これはちょうど "私の正しい道のりです"という質問ですか? – AgentConundrum

答えて

2

あなたは正しい道を歩いています。

<input type="image" class="follow">のようなボタンを使用した例を作成しました。ユーザーがクリックすると、サーバー(URL)に要求が送信されます。成功するとボタン画像が更新されます。

$('input[type=image].follow').click(function() { 
    var button = $(this); 
    var current_img = $(button).attr('src'); 
    var current_alt = $(button).attr('alt'); 

    $(button).attr('src', '/style/icons/ajax-loader.gif'); 
    $(button).attr('alt', 'Requesting data from the server...'); 

    $.ajax({ 
     url: url of script the processes stuff (like db update), 
     type: 'POST', 
     data: {}, 
     dataType: "json", 
     error: function(req, resulttype, exc) 
     { 
     $(button).attr('src', '/style/error.png'); 
     $(button).attr('alt', 'Error while updating!'); 
     window.setTimeout(function() { 
      $(button).attr('src', current_img); 
      $(button).attr('alt', current_alt); 
     }, 3000); 
     }, 
     success: function(data) 
     { 
     $(button).attr('src', '/style/followed.png'); 
     $(button).attr('alt', 'Followed'); 
     } 
    }); 

    return false; 
    }); 

上記は単なるコード例です。意志でそれを変更してください。それを楽しみましょう。

+0

クール、例のおかげで。リクエストを処理するPHPページにいくつかの変数を渡すにはどうすればよいですか?それはURLにありますか:mypage.php?var1 = a&var2 = bまたはデータ内:{}?ありがとう。 – santa

+0

GETの代わりにPOSTを使用するので、データにvarsを追加するのはよりクリーンです。しかしそれはちょうど私かもしれません:) – PeeHaa

+0

URLをエンコードするクラスを使用するので、私のvarsはURLで渡すのが安全ですが、私はあなたのポイントを見て、この場合はおそらくPOSTを使用します。私はまだデータを渡す方法を理解する必要があります。私はちょうどテストページを作り、これについて実験します。素晴らしい例のおかげで再び。 – santa

1

AJAXは正しく、jQueryはajaxを簡単にします。

//Post with jQuery (call test.php): 
$.post('test.php', function(data) { 
    //Do something with result data 
}); 
0

あなたが正しいトラックにいるように聞こえます。小さなアプリケーションで作業している場合は、AJAXリクエストを使用してレコードを作成するのは、Javaサーブレットを使用し、doGetメソッドまたはdoPostメソッドにJDBCコードを入れてデータベース操作を実行するのが最も簡単です。 同時に、AJAXリクエストのonSuccessメソッドは、ボタンの更新に必要なjQueryコードを呼び出すことができます。がんばろう!

関連する問題