これが私がナットシェルで行うことです
最初に、星の JavaScript ファイルと画像をどこか、できれば CDN でホストします。
次に、JSONP 経由でデータを送受信できる php ファイル (またはサーバー側の Java や Ruby など) をセットアップする必要があります。
div
ここから、リモート JavaScript ファイルをドキュメント ヘッドと、その評価者を表す特別なクラスを含むページに含めるようにユーザーに依頼します(この例では.star
)。
タスク:
Javascript:のすべてのインスタンスに<div class="star"></div>
星の画像を入力して設定します。
Javascript:完全な識別子を使用して、JSONP 経由でサーバーから現在の評価集計平均を要求します (手順 4 を参照)。
PHP:識別子を使用して、これまでの星評価の所定の平均を見つけ、現在の平均評価を JSON として返します。見つからない場合は、JSON で「評価されていない」状態を返します。
Javascript: ajax から受け取った現在の評価平均、または評価されていない状態を表示して、すべてが正しく見えるように星のスタイルを設定します。
Javascript:基本的な動作の設定 (ホバー スタイルの変更など)
Javascript:スターへのクリック イベント バインディングを作成します。ユーザーがクリックすると、評価に関する情報を AJAX JSON 経由でサーバーに送信する必要があります。この情報には、評価者の URL やその他の識別子とともに、評価自体を含める必要があります。
何かのようなもの:
{
url : 'http://endUsersite.com/pagetoberated.html',
starId : 'pictureOfBillMurray',
rating : 4,
raterIP : 192.168.1.130
date : UTCstringhere
}
Javascript:スタイルを変更して進行中の評価を表示し、将来の ajax によるクリックを防止します。
PHP: JSON をキャッチし、処理して mySQL に保存します。
PHP:ストレージが成功した後、評価が成功したことを示す JSON で ajax 呼び出しに応答します。
Javascript: JSON の 'success-response' を取得すると、評価が成功したことを示すために星をスタイルします。
PHP:評価を処理して新しい平均を決定します。
また、同じ IP アドレスからのレーティング スパムを防ぐために、サーバー側に何らかのタイミング システムを実装することをお勧めします。