2011-11-15 38 views
0

工作,我在執行此Rating Stars我怎麼能與評級明星和PHP

提供的評級的星星,而我使用PHP創建一個表,並動態地把記錄表等。所以現在,這張桌子上會有一張專欄,我將展示那些明星。我將這個值保存爲1到5的數字。當我將它們綁定到我的html表格時,我怎麼能告訴它在<td>裏面,從db中拉出來的值應該是那個被檢查的值。想象一下

從數據庫拉出值3(場被稱爲rate_num),因此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> 

現在star9意味着這是9日記錄,這評爲第九屆記錄爲3星。

好了,所以這是我的第一個問題

的第二個問題是保存它,當他們點擊一個明星我想這是檢查值並以某種方式將其轉換爲數字1到5,使我可以保存它。

我有數據庫設置與虛假數據進行測試..(沒有真正的評級發生了)。但我不是PHP專家或如何去做這件事。我很感謝你的幫助。

任何問題,請不要猶豫(而不是反對投票)......

問候

+0

傢伙,你已經大到我這些答案都值得得到答案。你們告訴我該給誰......我希望我可以給它兩個 – user710502

+0

我無動於衷,對不起。儘管謝謝!我很樂意提供幫助。祝你好運! –

回答

3

添加在每個明星的值=「1」直通5。最有可能爲點擊添加一個JavaScript(jQuery)偵聽器,並對服務器端(php)函數進行ajax調用(POST),該函數接收評估值的項目ID。如果您的網站有用戶,請確保他們只能投一次。

請與固定的HTML標記(THX mmmshuddup):

<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 - 上面的,只要你不想讓任何人投票將被禁用的。
  2. 當用戶點擊一個明星,添加事件偵聽器
    $('.star').click(function() { ajax_call(id,rating); });
  3. 這ajax_call()數據發佈到服務器端文件(如ajax.php)..這檢查誰已經評價該項目時,如果用戶沒有評分,然後添加。

註釋1:是分(5)應具有不同的 「名稱」 或 「級」,堅持名稱= 「STAR1」 ..名稱= 「star9」 例如每個塊。當用戶點擊,並且按照我的建議調用該函數時,請確定它是哪個項目,可能會找到子字符串位置4到最後以獲取該ID。

+0

偉大的邏輯,只有幾個問題..,我確定每個記錄的每個​​都有明確的星號(數字),對嗎?或者沒關係?就像在這種情況下,我需要創建一些循環來添加星。$ counter或者其他東西? – user710502

+0

請將您關於循環的問題重新說明。我不明白 –

+0

邁克非常感謝你......我將盡快實施這一切 – user710502

1

要添加到邁克的回答是:如果可能的話,最好使用GET請求,只要有可能,這樣說你的Ajax調用看起來是這樣的:

$('.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

優秀,還有一個問題..我是noob ..所以..在我的我會做一個OnClick或者你有什麼建議?我想這個問題是如何從這個按鈕觸發功能? – user710502

+1

此腳本在用戶單擊星星時提交評分。 (單選按鈕有班級明星)。 – OptimusCrime

+0

呵呵?每次用戶點擊其中一顆星時,此功能都會運行。 'callback'是他們允許你爲他們的onclick事件監聽器添加_additional_功能的方式。 –