2016-03-22 55 views
0

我有以下代碼:如何將動態ID值分配給標籤?

while ($row = $result->fetch_assoc()) { 
    echo "<div class='competitor' style='background: ".$row['Colour'].";'>"; 
    echo "<div class='competitorname'>".$row['CompetitorName']."</div><br>"; 
    echo "<div class='competitorscore' id='".$row['CompetitorID']."'>"; 
     echo"<label id='".$row['CompetitorName']."'></label></div>"; 
     echo "<input type='button' value='Increase' id='inc' onclick='incNumber()'/>"; 
     echo "<input type='button' value='Decrease' id='dec' onclick='decNumber()'/>"; 
} 

的代碼鏈接到下面的腳本:

var i = 0; 

function incNumber() { 
    if (i < 10) { 
     i++; 
    } else if (i = 10) { 
     i = 0; 
    } 
    document.getElementById('display').innerHTML = i; 
} 

function decNumber() { 
    if (i > 0) { 
     --i; 
    } else if (i = 0) { 
     i = 10; 
    } 
    document.getElementById('display').innerHTML = i; 
} 

的代碼創建一個記分牌。它爲每個球隊創建一個分數,併爲該球隊打分。

我遇到的問題是「增加」和「減少」按鈕增加和減少只有一個團隊(第一個)的分數。這是因爲腳本正在尋找id ='display'的標籤並將每個按鈕鏈接到該標籤。

我的問題是,如何爲每個使用該腳本的團隊創建一個不同的ID,以便每個增加/減少按鈕都鏈接到不同的團隊?

+0

但是你爲什麼需要分配唯一的ID以第一名的標籤?您是否需要在任何時間獲取競爭對手的標籤? – gurvinder372

回答

0

使用CompetitorID作爲增量和減量函數的參數來告訴它哪一行受到影響。您的標籤:

<label id='display".$row['CompetitorID']."'></label> 

您的按鈕onclick事件:

onclick='incNumber(".$row['CompetitorID'].")' 

然後你的JavaScript:

function incNumber(id) { 
    if (i < 10) { 
     i++; 
    } else if (i = 10) { 
     i = 0; 
    } 
    document.getElementById('display' + id).innerHTML = i; 
} 

編輯

對於在評論這個問題,迴音隱藏存儲每個t的值的字段EAM:

<input type='hidden' id='score".$row['CompetitorID']."' value='0'/> 

然後刪除全局var i = 0;並修改類似於這樣的功能:

function incNumber(id) { 
     // Get the score input 
     var scoreField = document.getElementById('score' + id); 
     // Get the value 
     var i = parseInt(scoreField.value); 
     if (i < 10) { 
      i++; 
     } else if (i = 10) { 
      i = 0; 
     } 
     // Set the visual score 
     document.getElementById('display' + id).innerHTML = i; 
     // Set the score input to the new score 
     scoreField.value = i; 
    } 
+0

謝謝!這工作奇蹟。我遇到的最後一個問題是,當我應用您的修復時,按下按鈕從最後一個分數(即i的最後一個副本)中增加/減少。例如。如果我在競爭對手1上按下增加5次,然後在競爭對手2上按下一次,它會將競爭對手2設置爲6而不是1.有沒有辦法解決這個問題? – monkeyman

+0

傳說!感謝隊友 – monkeyman

+0

非常歡迎。 –

0

你有一個$row['CompetitorID']價值,這可能是獨特的。追加到您正在使用的ID。

相關問題