2011-11-15 3 views
0

で動作することができます。だから今、私はそれらの星を見せてくれるテーブルの列があります。私は1から5までの数字として値を保存しています。私はそれらを私のHTMLテーブルにバインドするときに、<td>の中にそれを伝えることができますdbから引っ張られた値は、これを想像してみてください。は、どのように私はここに<a href="http://www.fyneworks.com/jquery/star-rating/#" rel="nofollow">Rating Stars</a></p> <p>提供レーティングを実装しています、と私はPHPでテーブルを作成し、動的なテーブル内のレコードを入れていますレーティングとPHP

引かDBから値3(フィールドはrate_numと呼ばれている)ので、今star9が、これは9日、レコード上にあることを意味tdがこの

<td> 
    <input name="star9" type="radio" class="star" disabled="disabled"/> 
    <input name="star9" type="radio" class="star" disabled="disabled"/> 
    <input name="star9" type="radio" class="star" disabled="disabled" checked="checked"/> 
    <input name="star9" type="radio" class="star" disabled="disabled"/> 
    <input name="star9" type="radio" class="star" disabled="disabled"/> 
</td> 

のようになります、その第九のレコードは3つ星と評価します。それが私の最初の問題であるので

[OK]を

第二の問題は、彼らは私が確認した値を取得し、何とかなるように5に数1に変換したい星をクリックしたときに、それを保存することです私はそれを保存することができます。

私はdbにテスト用の偽のデータを設定しています(実際の評価はまだありません)。しかし、私はPHPの専門家ではありません。私はあなたの助けに感謝します。

ご質問(の代わりにダウン投票の)...躊躇しないでください

よろしく

+0

ガイズどちらも答えを得るに値する。あなたは誰にそれを与えるか教えてください...私は両方にそれを与えることができたらいいです – user710502

+0

私は無関心です、申し訳ありません。しかし、ありがとう!私の喜びを助けてくれた。がんばろう! –

答えて

3

各スターの5スルー= "1" の値を追加します。ほとんどの場合、クリックに対してjavascript(jQuery)リスナーを追加し、評価値の項目&のIDを受け取るサーバー側(php)関数にajax呼び出し(POST)を行います。サイトにユーザーがいる場合は、一度だけ投票できることを確認してください。

<td> 
    <input name="star9" value="1" type="radio" class="star" /> 
    <input name="star9" value="2" type="radio" class="star" /> 
    <input name="star9" value="3" type="radio" class="star" /> 
    <input name="star9" value="4" type="radio" class="star" /> 
    <input name="star9" value="5" type="radio" class="star" /> 
</td> 
  1. は星のHTMLを作成します - あなたは誰にも投票したくない場合は、上記の、唯一の無効化を使用します。

    は、あなたの固定されたHTMLマークアップ(THXのmmmshuddup)を参照してください。

  2. ときにスターをユーザーがクリックすると、利用者ならば、項目を評価している人をチェックイベントリスナー
    $('.star').click(function() { ajax_call(id,rating); });
  3. このajax_callサーバー側のファイルへの()POSTSデータ(例えばajax.php)..を追加評価していない、追加します。

コメント1:はい星の各ブロックは、(5)..例えばNAME = "star9" を、別個の "名前" または "クラス" を有する名前= "star1" に固執するべきです。ユーザーがクリックし、私が提案したようにその関数が呼び出されると、それがどの項目であるかを判断し、idを取得するために部分文字列の位置4を最後に見つけるでしょう。

+0

偉大な論理、ちょっとした質問..私はそれぞれのレコードのそれぞれ​​が別個の星(番号)を持っていることを確認して正しいですか?それとも問題じゃない?この場合のように私はスターを追加するためにいくつかのループを作成する必要があります。$カウンタか何か? – user710502

+0

ループについてご質問をしてください。私はそれを理解していません –

+0

マイクは本当にありがとう...私はすぐにこのすべてを実装する – user710502

1

マイクの答えに追加するには:可能であれば、それはあなたのAJAX呼び出しは次のようになります言われていることを、可能な限りGETリクエストを使用することをお勧めします:

あなたはこれらの答えを私に素晴らしいされている
$('.star').rating({ 
    callback: function(value, link) { 
     var name = $(this).attr('name'); 
     $.ajax({ 
      url: "/path/to/ajax.php", 
      data: "name=" + name + "&value=" + value, 
      cache: false, 
      success: function(response) { 
       try { 
        console.log(response); 
       } catch (err) { 
        alert(response); 
       } 
      } 
     }); 
    } 
}); 
+0

優秀な、もう1つの質問..私はnoob ..だから私の私はOnClickをやるか、どうやってお勧めしますか?私は、このボタンから関数を呼び出す方法が問題だと思いますか? – user710502

+1

このスクリプトは、ユーザーが星をクリックすると評価を送信します。 (ラジオボタンにはクラススターがあります)。 – OptimusCrime

+0

huh?この関数は、ユーザーが星の1つをクリックするたびに実行されます。 'callback'は、あなたのonclickイベントリスナに_additional_機能を追加する方法です。 –

関連する問題

 関連する問題